2017-02-11 38 views
0

我使用python腳本在Chrome中登錄到gmail,但是在點擊下一步代碼返回錯誤之後,任何人都可以請幫助我什麼是錯誤的,我是python新手。下面是我使用的代碼。如何使用python在窗口中使用chrome登錄到gmail

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.support.select import Select 
import threading 
import os,time,csv,datetime 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import Select 
a = webdriver.Chrome() 
a.get("https://accounts.google.com/") 
user = a.find_element_by_id("Email") 
user.send_keys('[email protected]') 
login = a.find_element_by_id("next") 
login.click() 
pwd = WebDriverWait(a, 10).until(EC.presence_of_element_located((By.ID, "Passwd"))) 
pwd.send_keys('p######') 
login = a.find_element_by_id("signIn") 
login.click() 
clk = WebDriverWait(a, 10).until(EC.presence_of_element_located((By.LINK_TEXT, 'myaccount'))) 
clk.click() 
logout = WebDriverWait(a, 10).until(EC.presence_of_element_located((By.ID, "gb_71"))) 
logout.click() 

下面是錯誤:

回溯(最近通話最後一個): 文件 「C:\用戶\ mapraveenkumar \文檔\ Python的\ gmail.py」,第20行,在 CLK = WebDriverWait(a,10).until(EC.presence_of_element_located((By.LINK_TEXT,'myaccount'))) 文件「C:\ Users \ mapraveenkumar \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site- package \ selenium \ webdriver \ support \ wait.py「,第80行,直到 raise TimeoutException(message,screen,stacktrace) selenium.common.exceptions.TimeoutException:消息:

+0

請添加錯誤.. – franklinsijo

+0

這是錯誤:文件 「C:/Users/mapraveenkumar/Documents/Python/gmail.py」,第12行,在 PWD = a.find_element_by_css_selector(「#Passwd」) 文件「C:\ Users \ mapraveenkumar \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py」,第437行,在find_element_by_css_selector中返回self.find_element(by = By.CSS_SELECTOR,value = css_selector) –

+0

用錯誤更新帖子,不在註釋中。並且您發佈的錯誤代碼不匹配 – franklinsijo

回答

0

這很可能是因爲點擊「下一步」按鈕後,該頁面需要一些時間才能加載並顯示Password文本字段。嘗試使用wait statement以確保腳本等待元素可以定位。

實施例:

... 
login = a.find_element_by_id("next") 
login.click() 

pwd = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "Passwd")) 
pwd.send_keys('password') 
... 
+0

感謝拉爾夫,它運作良好,但當我進一步繼續時,我收到了不同的錯誤,請你幫我這個。我編輯了錯誤的代碼。 –

相關問題