2017-01-05 5 views
0

XPathを使用して、最初のドロップダウンを選択して値を渡し、2番目のドロップダウンを見つけて値を渡します。これは私がこれまで持っていたものです。XPathを使用して最初の要素を取得し、値を渡します

class pageCommon(Page): 

    def __init__(self, driver, fieldName): 

     self.driver = driver 
     try: 
      self.text = self.driver.find_element_by_xpath('//tr/th//*[text()="%s"]' % fieldName) 
     except: 
      self.text = self.driver.find_element_by_xpath('//tr/th//*[text()="%s"]' % (fieldName + ":")) 


    # take action - to edit any page[enterValue variable has to be a list] 
    def take_action(self, enterValue): 
     # ensures the edit mode is on 
     try: 
      driver.find_element_by_id("edit").click() 
     except: 
      pass 

     # currently the it is hardcoded. 
     self.text.find_element_by_xpath('./..//..//./td/select)[2]') 
     Select(self.text.find_element_by_xpath('./..//..//./td/select)[2]')).select_by_visible_text(enterValue) 

この方法を使用すると機能しません。おそらくXPathは正しくありませんが、私が完全にxpathをハードコードすると、それは動作しません。これは私がそれを動作させるために使用しているXPathです。

//tr/th//*[text()="Currency:"]/..//..//./td/select)[2] 

また、enterValueのパラメータはリストです。ユーザーがパスする場合、["ENG", "AUS"]とし、最初のドロップダウンではENGを選択し、2番目のドロップダウンではAUSを選択する必要があります。これにどのようにアプローチするか分かりません。

私はここに二つのことに苦しんでいます:ここでは、これは何のことです

  1. ループを追加し、正しいXPath
  2. を得るので、私は打ちに選択注文番号をお持ちでない

外見は

enter image description here

これは、ドロップダウンがどのように見えるかです:ここでは

enter image description here

最初のドロップダウンのためのHTMLコードです:

<tr> 
    <th valign="top" class="Form"> 
    <label for="currencyid">Currency:</label> 
    </th> 
    <td id="sf_60_td" class="Form"> 
     <table cellspacing=0 cellpadding=0> 
     <tr> 
      <td style="padding-left:5px;padding-right:5px">1</td> 
      <td> 
      <select name="currencyid" id="currencyid" onchange="updateForEx(this.form)" class="XSmall"> 
       <option value=USD selected >USD</option> 
       <option value=CAD>CAD</option> 
       <option value=FRCA>FRCA</option> 
       <option value=MXN>MXN</option> 
       <option value=EUR>EUR</option> 
       <option value=GBP>GBP</option> 
       <option value=HKD>HKD</option> 
       <option value=JPY>JPY</option> 
       <option value=INR>INR</option> 
       <option value=CLP>CLP</option> 
       <option value=PEN>PEN</option> 
       <option value=ZAR>ZAR</option> 
       <option value=CNY>CNY</option> 
       <option value=NAD>NAD</option> 
       <option value=TRY>TRY</option> 
       <option value=AUD>AUD</option> 
       <option value=BRL>BRL</option> 
       <option value=COP>COP</option> 
       <option value=CYP>CYP</option> 
       <option value=CZK>CZK</option> 
       <option value=DKK>DKK</option> 
       <option value=EGP>EGP</option> 
       <option value=ETB>ETB</option> 
       <option value=FJD>FJD</option> 
       <option value=GHC>GHC</option> 
       <option value=HUF>HUF</option> 
       <option value=IDR>IDR</option> 
       <option value=ILS>ILS</option> 
       <option value=JOD>JOD</option> 
       <option value=KZT>KZT</option> 
       <option value=KES>KES</option> 
       <option value=KWD>KWD</option> 
       <option value=LBP>LBP</option> 
       <option value=MYR>MYR</option> 
       <option value=MAD>MAD</option> 
       <option value=NZD>NZD</option> 
       <option value=TWD>TWD</option> 
       <option value=NOK>NOK</option> 
       <option value=OMR>OMR</option> 
       <option value=PKR>PKR</option> 
       <option value=PHP>PHP</option> 
       <option value=PLN>PLN</option> 
       <option value=QAR>QAR</option> 
       <option value=RUB>RUB</option> 
       <option value=SAR>SAR</option> 
       <option value=SGD>SGD</option> 
       <option value=SKK>SKK</option> 
       <option value=KRW>KRW</option> 
       <option value=SEK>SEK</option> 
       <option value=CHF>CHF</option> 
       <option value=THB>THB</option> 
       <option value=TTD>TTD</option> 
       <option value=TND>TND</option> 
       <option value=UAH>UAH</option> 
       <option value=AED>AED</option> 
       <option value=VND>VND</option> 
      </select> 
      </td> 
      <td style="padding-left:5px;padding-right:5px">=</td> 
      <td style="padding-left:5px;padding-right:5px"> 
      <input type="text" class="textreadonly" name="exrate" id="exrate" value="1.0" style="text-align:right;width:60px"/> 
      </td> 
      <td> 
      <select name="excur" id="excur" onchange="updateForEx(this.form)" > 
       <option value=USD>USD</option> 
       <option value=CAD selected >CAD</option> 
       <option value=FRCA>FRCA</option> 
       <option value=MXN>MXN</option> 
       <option value=EUR>EUR</option> 
       <option value=GBP>GBP</option> 
       <option value=HKD>HKD</option> 
       <option value=JPY>JPY</option> 
       <option value=INR>INR</option> 
       <option value=CLP>CLP</option> 
       <option value=PEN>PEN</option> 
       <option value=ZAR>ZAR</option> 
       <option value=CNY>CNY</option> 
       <option value=NAD>NAD</option> 
       <option value=TRY>TRY</option> 
       <option value=AUD>AUD</option> 
       <option value=BRL>BRL</option> 
       <option value=COP>COP</option> 
       <option value=CYP>CYP</option> 
       <option value=CZK>CZK</option> 
       <option value=DKK>DKK</option> 
       <option value=EGP>EGP</option> 
       <option value=ETB>ETB</option> 
       <option value=FJD>FJD</option> 
       <option value=GHC>GHC</option> 
       <option value=HUF>HUF</option> 
       <option value=IDR>IDR</option> 
       <option value=ILS>ILS</option> 
       <option value=JOD>JOD</option> 
       <option value=KZT>KZT</option> 
       <option value=KES>KES</option> 
       <option value=KWD>KWD</option> 
       <option value=LBP>LBP</option> 
       <option value=MYR>MYR</option> 
       <option value=MAD>MAD</option> 
       <option value=NZD>NZD</option> 
       <option value=TWD>TWD</option> 
       <option value=NOK>NOK</option> 
       <option value=OMR>OMR</option> 
       <option value=PKR>PKR</option> 
       <option value=PHP>PHP</option> 
       <option value=PLN>PLN</option> 
       <option value=QAR>QAR</option> 
       <option value=RUB>RUB</option> 
       <option value=SAR>SAR</option> 
       <option value=SGD>SGD</option> 
       <option value=SKK>SKK</option> 
       <option value=KRW>KRW</option> 
       <option value=SEK>SEK</option> 
       <option value=CHF>CHF</option> 
       <option value=THB>THB</option> 
       <option value=TTD>TTD</option> 
       <option value=TND>TND</option> 
       <option value=UAH>UAH</option> 
       <option value=AED>AED</option> 
       <option value=VND>VND</option> 
      </select> 
      </td> 
      <td style="padding-left:5px;padding-right:5px"> 
      <input type=hidden name="examt" id="examt" value="0.0"/>2016-12-20 11:30</td> 
     </tr> 
     </table> 
    </td> 
    </tr> 
+2

関連するHTMLは提供できますか?彼らがそれを見ずに正しいかどうかについてコメントするのは難しいです! – Josh

+0

@Josh、私は自分のコードを編集してHTMLコードを追加しました – user7242550

+1

ありがとう、代わりにIDでこれらの要素を見つけることができませんか? – Josh

答えて

1

あなたがHTMLコードを投稿してくださいことはできますか? 2番目の質問では、ドロップダウンの数がリスト内の項目の数と等しいかそれ以上であると仮定します。 リストを反復して、リストから1つずつ項目を選択し、ドロップダウンで選択することができます。 例:for counter in range(0,Len(list_name)): item=list_name[counter]

+0

私は最初の選択のためのhtmlコードを追加しました – user7242550

関連する問題