私はhttp://sports.williamhill.com/bet/en-gbにpythonとseleniumを使ってログインしようとしています。pythonとseleniumを使ってウェブサイトにログイン
from selenium import webdriver
session = webdriver.Chrome()
session.get('https://sports.williamhill.com/bet/en-gb')
# REMOVE POP-UP
timezone_popup_ok_button = session.find_element_by_xpath('//a[@id="yesBtn"]')
timezone_popup_ok_button.click()
# FILL OUT FORMS
usr_field = session.find_element_by_xpath('//input[@value="Username"]')
usr_field.clear()
WebDriverWait(session, 10).until(EC.visibility_of(usr_field))
usr_field.send_keys('myUsername')
pwd_field = session.find_element_by_xpath('//input[@value="Password"]')
pwd_field.clear()
pwd_field.send_keys('myPassword')
login_button = session.find_element_by_xpath('//input[@id="signInBtn"]')
login_button.click()
私は次のエラーを取得しています:ここで
は、私がこれまで試したものです。
selenium.common.exceptions.ElementNotVisibleException: Message: element not visible
usr_field.send_keys('myUsername')
を実行しようとしたときusr_field要素は、しかし、私は必ずここに100%ではないよ、私はインスペクタツールでそれを見ていた場合に表示されるように思えます。
私はこのスクリプトをいくつかの変更を加えて他のサイトでもうまく使っていますが、これは私に本当の頭痛を与えています。ネット上のどこでも答えが見つからないようです。
誰かが私を助けてくれると感謝しています!
ステップ1:デバッガを起動し、どの要素が表示されていないかを調べます。 –
要素をロードする時間を残すために、いくつかのスリープ状態を設定します。 –
@SamirSadek睡眠を使わない...睡眠は悪い習慣です。代わりに 'WebDriverWait'を使用してください。 – JeffC