如何使用 Python 在 Selenium 上 select 下拉菜单
How to select dropdown on Selenium using Python
我正在尝试 select 国家/地区,但不知何故它不起作用。下面的代码是我所做的。无法正常工作。
<select name="state" class="form-control selectpicker">
<option value=" ">Please select your state</option>
<option>Alabama</option>
<option>Alaska</option>
<option>Arizona</option>
<option>Arkansas</option>
<option>California</option>
<option>Colorado</option>
</select>
这是我所做的:browser.find_element_by_css_selector(".form-control.selectpicker [option='Alaska']").click()
要 select 文本为 阿拉斯加 的 <option>
您可以使用以下 :
使用xpath
:
dropdown_menu = Select(browser.find_element_by_xpath("//select[@class='form-control selectpicker' and @name='state']"))
dropdown_menu.select_by_visible_text('Alaska')
理想情况下,您需要为 element_to_be_clickable()
引入 ,您可以使用以下 Locator 策略:
使用 CSS_SELECTOR
并在一行中:
Select(WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select.form-control.selectpicker[name='state']")))).select_by_visible_text('Alaska')
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
参考
您可以在以下位置找到一些相关讨论:
我正在尝试 select 国家/地区,但不知何故它不起作用。下面的代码是我所做的。无法正常工作。
<select name="state" class="form-control selectpicker">
<option value=" ">Please select your state</option>
<option>Alabama</option>
<option>Alaska</option>
<option>Arizona</option>
<option>Arkansas</option>
<option>California</option>
<option>Colorado</option>
</select>
这是我所做的:browser.find_element_by_css_selector(".form-control.selectpicker [option='Alaska']").click()
要 select 文本为 阿拉斯加 的 <option>
您可以使用以下
使用
xpath
:dropdown_menu = Select(browser.find_element_by_xpath("//select[@class='form-control selectpicker' and @name='state']")) dropdown_menu.select_by_visible_text('Alaska')
理想情况下,您需要为 element_to_be_clickable()
引入
使用
CSS_SELECTOR
并在一行中:Select(WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select.form-control.selectpicker[name='state']")))).select_by_visible_text('Alaska')
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
参考
您可以在以下位置找到一些相关讨论: