2016-04-13 65 views
1

我試圖自動登錄到使用以下腳本的網頁:Python的自動登錄網頁

from selenium import webdriver 
from selenium.webdriver.support import ui 
from selenium.webdriver.common.keys import Keys 
def page_is_loaded(driver): 
return driver.find_element_by_tag_name("body") != None 
driver = webdriver.Firefox() 
driver.get("http://blabla.htm") 
wait = ui.WebDriverWait(driver, 10) 
wait.until(page_is_loaded) 
email_field = driver.find_element_by_id("sap-user") 
email_field.send_keys("foo") 
password_field = driver.find_element_by_id("sap-password") 
password_field.send_keys("blabla") 
password_field.send_keys(Keys.RETURN) 

的代碼是工作的罰款。在下一步中,我想在登錄完成後打開Firefox窗口。你能幫忙嗎? 我正在嘗試:

driver.open() 
+0

當您運行:driver = webdriver.Firefox()。您應該已經看到Firefox打開一個新窗口。這不是這種情況嗎? – oxdeadbeef

+0

沒有Firefox窗口打開。 – slyclam

+0

好的,我解決了它。我會添加一個答案。 – slyclam

回答

1

問題是由於縮進錯誤導致的。以下代碼具有期望的結果:

from selenium import webdriver 
from selenium.webdriver.support import ui 
from selenium.webdriver.common.keys import Keys 
def page_is_loaded(driver): 
    return driver.find_element_by_tag_name("body") != None 
driver = webdriver.Firefox() 
driver.get("http://blabla.htm") 
wait = ui.WebDriverWait(driver, 10) 
wait.until(page_is_loaded) 
email_field = driver.find_element_by_id("sap-user") 
email_field.send_keys("foo") 
password_field = driver.find_element_by_id("sap-password") 
password_field.send_keys("blabla") 
password_field.send_keys(Keys.RETURN) 
page_is_loaded() 
+0

如果我每次聽到由錯誤標籤引起的Python錯誤都會產生鎳,我會購買Python並將它從地球上清除。 –