2017-04-22 66 views
0

我试图做一个自动脚本机器人,找到一个特定的项目,并将该项目添加到用户购物车等等。现在我陷入了让python从下拉菜单中选择大小。WebDriverWait +下拉大小菜单

我也去了WebDriverWait函数,因为它给了我一个未找到的元素错误,所以我认为它'尺寸'元素尚未加载。

Python也扔我这个错误

“类型错误:‘海峡’对象不是可调用的”

下面也html代码,我引用拉从信息的图片。也将欣赏任何更好的执行建议。

enter image description here

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 

# Open chrome web browswer and directs to supreme.com 

browser = webdriver.Chrome() 
browser.get('http://www.supremenewyork.com/shop/all') 

#Find specific item 

browser.find_element_by_xpath('//* 
[@id="container"]/article[14]/div/a/img').click() 

#Wait for element to load 

pause = WebDriverWait(browser,10).until(
EC.visibility_of_any_elements_located(By.ID('size')) 
) 


# Select size 

Select = Select(browser.find_element_by_id('size')) 
Select.select_by_visible_text("Large") 
+0

您可能需要单击定位器,因为直到单击大小下拉列表时才启用选项。此外,您的网页的中间状态可能会导致此网页失败,因为您建议购买的文章已经售罄 – demouser123

+0

所以我错过了致电.click()功能? – Ksuby

回答

1

试试下面的代码。

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("Medium") 
+0

@akrash代码中有什么区别._。 – Ksuby

+0

@Ksuby语法,你用于元素的可见性是错误的,我纠正它。你试过这个吗? – Akarsh

+0

不幸的是我现在正在工作,所以还没有 – Ksuby