如何 select 在 python 中使用 selenium 的下拉列表项

how to select an item of a dropdown using selenium in python

我正在尝试单击 "Universität Bern",这是一个下拉选项,可以在以下 link:

中找到

我使用以下代码进入该页面 (link),但我无法点击此下拉菜单的选项。我的代码是:

     import content as content
     from selenium import webdriver
     from selenium.webdriver.support.ui import Select
     import time

     path = "C:\Program Files\chromedriver.exe"
     driver = webdriver.Chrome(path)
     driver.get("https://www.zssw.unibe.ch/usp/zms/angebot/6728/index_ger.html")
     pathanmelden = driver.find_element_by_xpath("//* 
     [@id='content']/section/div/div/div/div/div/table/tbody/tr[5]/td[2]/a")
     pathanmelden.click()
     time.sleep(1)
     pathforstudents = driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/form/input")
     pathforstudents.click()
     chosetheuniversity = driver.find_element_by_class_name("")# This is what does not work"

感谢任何帮助。

此下拉列表不是使用 select 和选项标签构建的,因此 select class 将不起作用。

您应该先单击下拉箭头,然后单击所需的元素。

代码:

driver.maximize_window()
wait = WebDriverWait(driver, 30)

driver.get("https://www.zssw.unibe.ch/usp/zms/angebot/6728/index_ger.html")
pathanmelden = driver.find_element_by_xpath("//* [@id='content']/section/div/div/div/div/div/table/tbody/tr[5]/td[2]/a")
pathanmelden.click()
time.sleep(1)
pathforstudents = driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/form/input")
pathforstudents.click()

wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "img#user_idp_iddicon"))).click()
time.sleep(2)
wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@title='Universities: Universität Bern']"))).click()

进口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

PS: 我没有更改您现有的定位器,您也可以更改它们,因为它们是绝对 xpath。 time.sleep(2) 仅用于可视化目的。您可以在测试代码后将其删除。

尝试通过发送您的文本进行关注,然后按 Enter 键:

Java代码:

WebDriver driver;
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
driver = new ChromeDriver(options);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(30, 1));
driver.manage().window().maximize();

driver.get("https://www.zssw.unibe.ch/usp/zms/login.php?");
By y = By.xpath("//INPUT[@id='user_idp_iddtext']");
driver.findElement(y).clear();
Thread.sleep(2);
driver.findElement(y).sendKeys("Universität Bern");
Thread.sleep(2);
driver.findElement(y).sendKeys(Keys.ENTER);

Python:

driver.maximize_window()
wait = WebDriverWait(driver, 30)

driver.get("https://www.zssw.unibe.ch/usp/zms/angebot/6728/index_ger.html")
x= driver.find_element_by_xpath("//INPUT[@id='user_idp_iddtext']")
x.clear()
time.sleep(1)
x.send_Keys("Universität Bern")
time.sleep(1)
x.send_Keys(Keys.ENTER)