1

私は Web サイトにログインしようとしていますが、一度ログインすると、Selenium を使用して、ログインしたままの Web サイトの別のページに移動します。しかし、別のページに移動しようとすると、ログオフされていることがわかりました。

これは、webdriver.Firefox().get()機能が正確にどのように機能するかを理解していないためだと思います。

私のコード:

from selenium import webdriver
from Code.Other import XMLParser

#Initialise driver and go to webpage
driver = webdriver.Firefox()
URL = 'http://www.website.com'
driver.get(URL)

#Login
UserName = XMLParser.XMLParse('./Config.xml','UserName')
Password = XMLParser.XMLParse('./Config.xml','Password')
element = driver.find_elements_by_id('UserName')
element[0].send_keys(UserName)
element = driver.find_elements_by_id('Password')
element[0].send_keys(Password)
element = driver.find_elements_by_id('Submit')
element[0].click()

#Go to new page
URL = 'http://www.website.com/page1'
driver.get(URL)

残念ながら、新しいページに移動しましたが、ログインしていません。これを修正するにはどうすればよいですか?

4

1 に答える 1

1

Web サイトには、認証フォームでの送信に対応する十分な時間がないようです。クリックしますsubmitが、応答を待たずに別の URL を開きます。

ログイン後の何らかのイベント (Cookie の取得や DOM の変更などtime.sleep) まで待ってから、別のページに移動します。

PS: 解決しない場合は、ログイン後、新しい URL を開いた後に Cookie を確認してください。認証バックエンドまたは Web ドライバーに問題がある可能性があります。

于 2013-07-25T19:51:56.673 に答える