我遇到了一个问题,Selenium 说一个按钮即使在禁用时也是可点击的。
我将 Selenium 与一个网站一起使用,在该网站上,您必须先选择一个日期,然后从下拉列表中选择时间段,然后才能单击“预订”按钮并实际执行任何操作。在选择日期和时间段之前,按钮元素是
<div id="pt1:b2" class="x28o xfn p_AFDisabled p_AFTextOnly" style="width:300px;" _afrgrp="0" role="presentation"><a data-afr-fcs="false" class="xfp" aria-disabled="true" role="button"><span class="xfx">Book</span></a></div>
选择日期和时间段后,按钮变为
<div id="pt1:b2" class="x28o xfn p_AFTextOnly" style="width:300px;" _afrgrp="0" role="presentation"><a href="#" onclick="this.focus();return false" data-afr-fcs="true" class="xfp" role="button"><span class="xfx">Book</span></a></div>
我正在尝试使用此代码来等待按钮可点击
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.ID, 'pt1:b2')))
但是 Selenium 表示,即使没有选择日期或时间段,并且该按钮完全变灰且无法点击,该按钮也几乎可以在网站加载后立即点击。我已经通过检查从导航到 url 之后和等待按钮可点击之后的时间戳来测试这一点,并且几乎没有延迟。我已经手动尝试了除循环之外的尝试并在两者之间休眠以能够成功单击按钮,但宁愿找出导致此问题的原因。有任何想法吗?