擅长:python、mysql、java
<p>我在试图单击某个元素(或者它的覆盖层,我不在乎)时遇到了这个错误,其他的答案对我不起作用。我通过使用<code>elementFromPoint</code>DOM API查找Selenium希望我单击的元素来修复它:</p>
<pre><code>element_i_care_about = something()
loc = element_i_care_about.location
element_to_click = driver.execute_script(
"return document.elementFromPoint(arguments[0], arguments[1]);",
loc['x'],
loc['y'])
element_to_click.click()
</code></pre>
<p>我也曾遇到过这样的情况:一个元素正在移动,例如,因为页面上它上面的一个元素正在进行动画扩展或折叠。在这种情况下,这个预期条件类有帮助。你给它的<em>元素是动画</em>,而不是你想点击的元素。此版本仅适用于jQuery动画。</p>
<pre><code>class elements_not_to_be_animated(object):
def __init__(self, locator):
self.locator = locator
def __call__(self, driver):
try:
elements = EC._find_elements(driver, self.locator)
# :animated is an artificial jQuery selector for things that are
# currently animated by jQuery.
return driver.execute_script(
'return !jQuery(arguments[0]).filter(":animated").length;',
elements)
except StaleElementReferenceException:
return False
</code></pre>