我正在尝试制作自动结帐脚本,但我仍然坚持从下拉列表中选择特定尺寸
from selenium import webdriver
import requests
driver = webdriver.Chrome()
driver.get('http://www.supremenewyork.com/shop/all')
driver.find_element_by_xpath('//*[@id="container"]/article[112]/div/a').click()
driver.find_element_by_xpath('//*[@id="size"]/option[2]').click()
下面是下拉列表大小选择的html,我正在复制xpath,但仍无法找到元素,为什么?
答案 0 :(得分:1)
看一下Select
课程。你应该在处理SELECT元素时使用它...它会让你的生活更轻松。
您的代码应该是
from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_id('size'))
select.select_by_visible_text("Medium")
答案 1 :(得分:0)
对于下拉菜单,您无法直接使用driver.findElement。您应该使用Select api。
在Java中
可以使用Select sel = new Select (driver.findElement (By.name ("size"))
sel.selectByvalue or index or visible text
。你可以将你的代码折射成python ..上面是java代码。
答案 2 :(得分:0)
尝试以下代码。
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
browser.get('http://www.supremenewyork.com/shop/all')
browser.find_element_by_xpath('//*[@id="container"]/article[12]/div/a/img').click()
WebDriverWait(browser,10).until(EC.visibility_of_any_elements_located((By.ID,'size')))
select = Select(browser.find_element_by_id('size'))
select.select_by_visible_text("Large")