Python找不到这样的元素

时间:2017-04-22 00:02:25

标签: python selenium selenium-chromedriver

我正在尝试制作自动结帐脚本,但我仍然坚持从下拉列表中选择特定尺寸

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,但仍无法找到元素,为什么?

enter image description here

3 个答案:

答案 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")