簡體   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