【发布时间】:2018-07-22 14:36:16
【问题描述】:
所以我一直在 Python 中使用 Selenium。我完成了我的代码(当时有效),但突然它选择不再工作。 再具体一点: 如果我尝试:
driver.find_element_by_id("leasingtrue").click()
它返回错误:
selenium.common.exceptions.ElementNotInteractableException: Message: Element <input id="leasingfalse" name="IsLeasing" type="radio"> could not be scrolled into view
另一方面,如果我通过它的 XPath 找到该元素,它会按预期工作。 该错误仅发生在“radio”类型中,但始终出现在每个类型中。
由于完整的代码大约有 600 行长,我不打算将其中的每一个都更改为 XPath。 另一个相关信息: 因为我正在使用 PyCharm,所以我可以恢复到以前肯定可以使用的版本。 但是现在,它也给了我同样的错误。有谁知道这个错误可能与什么有关?
我正在抓取的网站是:https://www.comparis.ch/autoversicherung/berechnen?carmake=41。 我正在使用 Python 2.7 和 Selenium 3.8 相关的 HTML 是:
<div class="item-selectable xsmall-6 columns">
<input data-val="true" data-val-required="Bitte wählen Sie eine Antwort aus." data-vertical-alignment="middle" id="leasingtrue" name="IsLeasing" type="radio" value="true" aria-required="true" aria-invalid="false" aria-describedby="IsLeasing-error">
<label for="leasingtrue">Ja</label>
</div>
【问题讨论】:
-
我已经实现了睡眠定时器,也不起作用。
-
ElementNotInteractableException与 Temporary Overlay 和 Permanent Overlay 有更多关系。请正确进行讨论。 -
很抱歉,但我不明白这与 XPath 可访问它而不是 id 或名称这一事实有何关系,或者这将如何解释它直到今天早上都正常工作。请给我一些关于您对上下文的想法的见解。
-
为了使 SO 志愿者能够帮助您提供准确且有效的解决方案,您必须考虑使用您正在使用的二进制文件的版本信息更新问题,相关的 HTML 以及您的代码试验和错误堆栈跟踪。
标签: python selenium radio-button