2016-04-11 24 views
0

我想運行代碼登錄到gmail.com,但登錄過程似乎已經改變。我修改了以下代碼,但不斷收到以下錯誤:selenium.common.exceptions.NoSuchElementException:消息:無法找到元素:{「method」:「id」,「selector」:「Passwd」} 任何人都看到或者知道我做錯了什麼。由於讓枯燥的東西自動化 - 第11章 - 填寫並提交表格p。 259

from selenium import webdriver 
browser = webdriver.Firefox() 
browser.get('http://gmail.com') 
emailElem = browser.find_element_by_id('Email') 
emailElem.send_keys('[email protected]') 
nextElem = browser.find_element_by_id('next') 
nextElem.click()    # click the button 
passwordElem = browser.find_element_by_id('Passwd') 
passwordElem.send_keys('password') 
passwordElem.submit() 
+0

一個穩定的Gmail API的Python:https://developers.google.com/gmail/api/quickstart/python –

回答

2

您需要wait的元素的存在與id="Passwd"

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(browser, 10) 
passwordElem = wait.until(EC.presence_of_element_located((By.ID, "Passwd"))) 
passwordElem.send_keys('password') 
passwordElem.submit() 
+0

通過對我的代碼進行以下修改,它可以工作。謝謝alecxe。 wait = WebDriverWait(瀏覽器,10) –