繁体   English   中英

无法单击 Selenium 中的按钮

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM