option = ChromeOptions()
chrome_prefs = {}
driver = Chrome(chrome_options=option) #getting the web driver object
try:
url="https://www.groupon.fr/merchant/center/"
driver.get(url)
driver.maximize_window()
email="xyz"
password="abc"
email_box=WebDriverWait(driver,10).until(lambda x: x.find_element_by_id("emailInput"))
email_box.send_keys(email)
password_box=WebDriverWait(driver,10).until(lambda x: x.find_element_by_id("passwordInput"))
password_box.send_keys(password)
attempts=0
while True:
try:
submit = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CLASS_NAME,"submitButton button-primary button-cta")))
driver.execute_script("arguments[0].click();", submit)
break
except:
traceback.print_exc(file=sys.stdout)
attempts+=1
if (attempts>3):
raise Exception("Error")
continue
finally:
driver.quit()
输出
回溯(最近通话最近):文件 “”,第22行,在提交= WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CLASS_NAME,“ submitButton button-primary button-cta“)))文件 “ C:\ Users \ sheik \ Anaconda2 \ lib \ site-packages \ selenium \ webdriver \ support \ wait.py”, 第80行,直到引发TimeoutException(消息,屏幕,堆栈跟踪) TimeoutException:消息:
我实际上是在尝试登录此页面,并且在填写电子邮件和密码后,尽管我使用了正确的按钮类名,但是找不到提交按钮。我也从xpath尝试过,但是没有成功。
我的代码有什么问题?The html of the page
答案 0 :(得分:1)
我的新计算机上尚未安装硒,但是您可以使用CSS selectors进行搜索。 我知道示例代码不是python,但是您应该能够找出相应的python代码。
编辑。请尝试以下操作:
submit = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,".submitButton.button-primary.button-cta")))