如何 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)
我正在尝试单击 "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)