我正在用Selenium(Python)编写脚本,但是单击按钮被禁用时遇到问题。仅当表单完成时,该按钮才处于活动状态。
<button type="submit" class="pm_button primary large humanVerification-completeSetup-create" ng-disabled="model.emailCodeVerification === '' && model.captcha_token === false && 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 === '' && model.captcha_token === false && model.smsCodeVerification === ''" translate="" translate-context="Action">Complete setup</button>
这是验证码或其他类型的验证完成后的代码。
验证完成后,第一行代码中的disabled="disabled"
部分将被完全删除。我真的对如何检测它有0个想法,但未能找到好的解决方案。
答案 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