<select>
セレンを使用してオプションを選択することができません。https://sqa.stackexchange.com/questions/1355/what-is-the-correct-way-to-select-an-option-using-seleniums-python-webdriverを参照しました
html コードは次のとおりです。
<select name="Dropdownlistrequests" onchange="javascript:setTimeout('__doPostBack(\'Dropdownlistrequests\',\'\')', 0)" id="Dropdownlistrequests" style="height:51px;width:174px;Z-INDEX: 104; LEFT: 280px; POSITION: absolute; TOP: 72px">
<option selected="selected" value="1">Previous Days</option>
<option value="2">Previous Month</option>
<option value="3">Last 12 Hours</option>
<option value="4">Demand Poll</option>
<option value="6">Custom</option>
</select>
私が試してみました
requests = driver.find_element_by_id("Dropdownlistrequests")
requests.click()
for option in requests.find_elements_by_tag_name('option'):
if option.text == "Custom":
option.click()
break
と
requests = Select(driver.find_element_by_id("Dropdownlistrequests"))
requests.select_by_value("6")
と
b.find_element_by_xpath("//select[@id='Dropdownlistrequests']/option[text()='Custom']").click()
適切なオプションを選択する代わりに、ブラウザは何もせずに次のコードに進みます。onchange によってトリガーされる JavaScript を実行する何かを持っている可能性はありますか?
より多くのコンテキストを提供するには:私はWindows 7エンタープライズを実行しており、マリオネットとFirefox開発者版49.0a2でセレンを使用しています
更新:これは、Python で Marionette を使用している場合にのみ発生するようです。マリオネットの有無にかかわらず、Javaでこの同じコードを試してみましたが、うまくいきました