[英]Drop down option selection in selenium python
<select id="PRMT_SV_N0x29a524c0x0x2c68e47c_NS_" class="clsSelectControl pv" aria-
multiselectable="false" aria-invalid="false" style="width: 5cm;" xpath="1">
<option value="1"
dv="Transactions Only"> Transactions Only</option>
<option
value="2" dv="Few Transactions Only"> Transactions Only</option><option value="3"
dv="All Transactions">All Transactions</option>
</select>
我有上面的 HTML,它是下拉列表。 我必须单击元素才能看到所有三个选项并选择最后一个选项 Value =3。 下面是我的代码,它不工作或抛出任何错误。 它通过单击元素对零件起作用,但没有选择该选项。
driver.find_element_by_xpath('/html[1]/body[1]/form[1]/table[1]/tbody[1]/tr[2]/td[1]/div[1]/div[1]/table[1]/tbody[1]/tr[2]/td[1]/div[1]/div[4]/div[1]/table[1]/tbody[1]/tr[1]/td[1]/div[1]/select[1]').click()
select = Select(driver.find_element_by_xpath('/html[1]/body[1]/form[1]/table[1]/tbody[1]/tr[2]/td[1]/div[1]/div[1]/table[1]/tbody[1]/tr[2]/td[1]/div[1]/div[4]/div[1]/table[1]/tbody[1]/tr[1]/td[1]/div[1]/select[1]'))
select.select_by_value('3')
要 select 从 html-select 菜单中选择一个元素,您必须使用select
Class 而无需单击元素到 select 的下拉值。
代码:
select= Select(driver.find_element_by_xpath('//select[contains(@class,'clsSelectControl')]'))
select.select_by_value(3)
进口:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
有时Select
class 不能正常工作,在这种情况下我们需要 JS 干预。
请试试这个:
index = '3'
driver.execute_script(f"return document.querySelector('select.clsSelectControl.pv').selectedIndex = {index}")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.