2016-04-13 52 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并将它从地球上清除。 –