繁体   English   中英

下拉选项选择selenium python

[英]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">&nbsp;Transactions&nbsp;Only</option>

<option 
 value="2" dv="Few Transactions Only">&nbsp;Transactions&nbsp;Only</option><option value="3" 
 dv="All Transactions">All&nbsp;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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM