我正在尝试使用python和selenium登录http://sports.williamhill.com/bet/en-gb。
这是我到目前为止所尝试的内容:
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)
以下代码将解决此问题。
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()