如何通过selenium和python从下拉菜单中选择元素?

如何通过selenium和python从下拉菜单中选择元素?,python,python-3.x,selenium,selenium-webdriver,selenium-chromedriver,Python,Python 3.x,Selenium,Selenium Webdriver,Selenium Chromedriver,我正试图通过selenium驱动程序和python使用autologin测试。 我正在使用这个网站 我所做的: from selenium import webdriver driver = webdriver.Chrome() driver.get("https://invoiceaccess.pgiconnect.com") driver.find_element_by_id("LoginId").send_keys("test-account")

我正试图通过selenium驱动程序和python使用autologin测试。 我正在使用这个网站 我所做的:


    from selenium import webdriver
    driver = webdriver.Chrome()

    driver.get("https://invoiceaccess.pgiconnect.com")
    driver.find_element_by_id("LoginId").send_keys("test-account")
    driver.find_element_by_id("LoginPassword").send_keys("test-password")
    #driver.find_element_by_id("submit").click()

一切正常,但我在从下拉菜单中选择时遇到问题。例如,我有这个菜单的html代码。

    <select class="regiondropdown" data-val="true" data-val-required="Please Select Region" id="Region" name="Region"><option value="">Select Region</option>
    <option value="us">America</option>
    <option value="europe">Europe</option>
    <option value="apac">APAC</option>
    </select>


例如,我需要选择美国,但它选择亚太地区。在我出错的地方,谁能帮助我呢?

要检索select元素的特定选项(该选项的值为us),您可以使用selenium类执行以下操作:

from selenium.webdriver.support.ui import Select

option = Select(
    driver.find_element_by_xpath("//select[@name='Region']")
).select_by_value("us")
print(option.text) # Should print 'America'
也可以使用css选择器执行此操作:

selec = driver.find_element_by_xpath("//select[@name='Region']")
option = selec.find_element_by_css_selector("option[value=\"us\"]")
print(option.text) # Should print 'America'

要检索select元素的特定选项(该选项的值为us),您可以使用selenium类执行以下操作:

from selenium.webdriver.support.ui import Select

option = Select(
    driver.find_element_by_xpath("//select[@name='Region']")
).select_by_value("us")
print(option.text) # Should print 'America'
也可以使用css选择器执行此操作:

selec = driver.find_element_by_xpath("//select[@name='Region']")
option = selec.find_element_by_css_selector("option[value=\"us\"]")
print(option.text) # Should print 'America'

要从下拉框中选择值America,请尝试以下代码。它对我很有用

from selenium import webdriver
from selenium.webdriver.support.ui import Select

driver=webdriver.Chrome("Path of the Chrome driver" + "chromedriver.exe" )
driver.get("https://invoiceaccess.pgiconnect.com")

select =Select(driver.find_element_by_id("Region"))
select.select_by_value("us")

要从下拉框中选择值America,请尝试以下代码。它对我很有用

from selenium import webdriver
from selenium.webdriver.support.ui import Select

driver=webdriver.Chrome("Path of the Chrome driver" + "chromedriver.exe" )
driver.get("https://invoiceaccess.pgiconnect.com")

select =Select(driver.find_element_by_id("Region"))
select.select_by_value("us")

使用xpath和select的列表的通用代码

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://invoiceaccess.pgiconnect.com/")
driver.maximize_window()
def ListItemSelection(countrycode):
    driver.find_element_by_xpath("//select/option[@value='" + countrycode + "']").click()

ListItemSelection("us")
time.sleep(1)
ListItemSelection("europe")
time.sleep(1)
ListItemSelection("apac")
time.sleep(1)
driver.quit()

使用xpath和select的列表的通用代码

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://invoiceaccess.pgiconnect.com/")
driver.maximize_window()
def ListItemSelection(countrycode):
    driver.find_element_by_xpath("//select/option[@value='" + countrycode + "']").click()

ListItemSelection("us")
time.sleep(1)
ListItemSelection("europe")
time.sleep(1)
ListItemSelection("apac")
time.sleep(1)
driver.quit()

是否要检索每个选项的内部文本?或者具体地说,是将我们作为值的选项?@mgc我想选择USD您想检索每个选项的内部文本吗?或者特别是让我们有价值的选项?@mgc我想选择我们