2017-10-04 14 views
0

私は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%ではないよ、私はインスペクタツールでそれを見ていた場合に表示されるように思えます。

私はこのスクリプトをいくつかの変更を加えて他のサイトでもうまく使っていますが、これは私に本当の頭痛を与えています。ネット上のどこでも答えが見つからないようです。

誰かが私を助けてくれると感謝しています!

+0

ステップ1:デバッガを起動し、どの要素が表示されていないかを調べます。 –

+0

要素をロードする時間を残すために、いくつかのスリープ状態を設定します。 –

+0

@SamirSadek睡眠を使わない...睡眠は悪い習慣です。代わりに 'WebDriverWait'を使用してください。 – JeffC

答えて

1

次のコードは、この問題を解決します。

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 

user_element = session.find_element_by_name("tmp_username") 
user_element.click() 

actual_user_elm = session.find_element_by_name("username") 
actual_user_elm.send_keys("myUsername") 


password_element = session.find_element_by_id("tmp_password") 
password_element.click() 

actual_pass_element = session.find_element_by_name("password") 
actual_pass_element.send_keys("myPassword") 

login_button = session.find_element_by_xpath('//input[@id="signInBtn"]') 
login_button.click() 
+0

魅力的な作品、絶対に華麗です。とても有難い。ありがとうございました! – Baili

+0

いつでもようこそ。 :) –

関連する問題