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
を選択する必要があります。これにどのようにアプローチするか分かりません。
私はここに二つのことに苦しんでいます:ここでは、これは何のことです
- ループを追加し、正しい
XPath
- を得るので、私は打ちに選択注文番号をお持ちでない
外見は
これは、ドロップダウンがどのように見えるかです:ここでは
最初のドロップダウンのための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>
関連するHTMLは提供できますか?彼らがそれを見ずに正しいかどうかについてコメントするのは難しいです! – Josh
@Josh、私は自分のコードを編集してHTMLコードを追加しました – user7242550
ありがとう、代わりにIDでこれらの要素を見つけることができませんか? – Josh