告诉脚本等待按钮可单击?

时间:2019-10-18 14:53:57

标签: python html selenium selenium-webdriver

我正在用Selenium(Python)编写脚本,但是单击按钮被禁用时遇到问题。仅当表单完成时,该按钮才处于活动状态。

<button type="submit" class="pm_button primary large humanVerification-completeSetup-create" ng-disabled="model.emailCodeVerification === '' &amp;&amp; model.captcha_token === false &amp;&amp; model.smsCodeVerification === ''" translate="" translate-context="Action" disabled="disabled">Complete setup</button>

这是按钮HTML部分。现在,按钮如下所示:

Button Image http://prntscr.com/pl4u96

如您所见,它不可点击。仅当验证码或任何其他类型的验证完成时,该按钮才会激活。现在,我唯一的要求是在按钮变为活动状态时对其进行检测。

<button type="submit" class="pm_button primary large humanVerification-completeSetup-create" ng-disabled="model.emailCodeVerification === '' &amp;&amp; model.captcha_token === false &amp;&amp; model.smsCodeVerification === ''" translate="" translate-context="Action">Complete setup</button>

这是验证码或其他类型的验证完成后的代码。 验证完成后,第一行代码中的disabled="disabled"部分将被完全删除。我真的对如何检测它有0个想法,但未能找到好的解决方案。

1 个答案:

答案 0 :(得分:1)

得出WebDriverWait并等待element_to_be_clickable()

WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//button[@class='pm_button primary large humanVerification-completeSetup-create'][text()='Complete setup']"))).click()

您需要导入以下内容。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC