[英]Can't click a button in Selenium
这是 paypal 按钮!
我正在尝试单击从禁用到启用的按钮。 它的按钮属性也显示为禁用。
<button class="button_E6SE9 primary_1oCqK continue-to-review regular_1jnnf" type="submit" data-automation="review-order" xpath="1"><span class="content_3Dbgg" tabindex="-1">Continue</span></button>
它从以下变化:
<button disabled class> to <button class>
所以,我正在考虑等待属性更改,然后使用 to_be_clickable 单击按钮
continuebtn = WebDriverWait(driver, 10).until
(EC.element_to_be_clickable((By.XPATH, "//span[contains(text(),'Continue')]")).click()
print("clicked")
它打印 clicked 表示执行了上述步骤,但没有点击页面上的“继续”按钮。 我以前也可以,但是,我编辑了几次代码,现在我无法修复它。
看来这个元素给你带来了一些麻烦......
你能等到元素可以使用 Selenium 来点击,但使用 JavaScript 来点击按钮? 这行得通吗?
driver.execute_script("var continue_button = document.querySelector('button.continue-to-review'); continue_button.click()")
尝试这个:
driver.find_element_by_xpath('//button[@type="submit"]').click()
如果你想确定它是否点击正确,你应该像这样使用:
if driver.find_element_by_xpath('//button[@type="submit"]').click():
print('Clicked!')
else:
print('Element Not Found!')
我希望我能帮助你
可能的解决方案,但很难在没有看到链接的情况下进行测试。
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//button[@class="button_E6SE9 primary_1oCqK continue-to-review regular_1jnnf" and not(@disabled)]')))
另外,尝试使用
wait.until(EC.invisibility_of_element_located((By.CSS_SELECTOR, "button[disabled][class*='continue-to-review']")))
并单击带有上方定位器或任何其他较短定位器的此按钮。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.