2016-04-13 12 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を購入して地球から消去します。 –

関連する問題