2016-10-31 104 views
0

,因爲我更新了我的火狐49.02和硒到3.0.1,我以前的代碼登錄到我bing account不起作用。蟒蛇硒點擊一個鏈接

存在www.bing.com一個Sign in鏈接,我可以成功地點擊這個鏈接調用:

driver.get("http://www.bing.com") 
driver.implicitly_wait(20) 
driver.find_element_by_link_text('Sign in').click() 

然而,升級後,我收到包含任何消息都奇怪的錯誤消息:

selenium.common.exceptions.ElementNotVisibleException: Message: 

如果我只叫driver.find_element_by_link_text('Sign in'),我會收到錯誤消息。這似乎像硒可以成功地找到這個鏈接,但不知何故它不能點擊這個按鈕。

我也試圖找到Sign in通過它class name或通過單擊圖標來代替,但所有這些努力是沒用的。

我不知道錯誤是微軟的問題,以阻止自動記錄或在我的代碼中的錯誤。幫助表示讚賞!

調用driver.find_element_by_xpath('//a[span = "Sign in"]').click()通過alecxe的建議仍不能解決問題。

+0

如預期它不工作,不要用'隱wait',使用'明確wait'而非http://selenium-python.readthedocs。 io/waits.html#explicit-waits – Andersson

+0

爲了確保我在Selenium 2和Chrome中測試了它,並且可以確認腳本是否正確,並且目標元素確實存在。 – Bouke

+0

@安德森,是的,你是對的!一旦我切換到顯式等待來自'alecxe'的結果,問題就解決了。 – user6651227

回答

2

Wait的鏈接是點擊

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

wait = WebDriverWait(driver, 10) 
sign_in = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Sign in"))) 
sign_in.click() 
+1

感謝您的回答,但我收到完全相同的錯誤消息 – user6651227

+0

@ user6651227好的,請檢查更新。謝謝。 – alecxe

+0

這個工程!非常感謝 – user6651227