2017-04-22 64 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