硒和 Python。元素在 (x,y) 点不可点击,因为另一个元素遮住了它
Selenium and Python. Element not clickable at point (x,y) because another element obscures it
我正在尝试使用 Selenium select 网页上的复选框,并使用这行代码 Python
self.driver.find_element_by_id('lg_1166').click()
但我收到此错误消息
Message: Element <input id="lg_1699" name="lg_1699" type="checkbox"> is not clickable at point (284,888) because another element <div class="col-12 text-center"> obscures it
然后,当我检查同一网页寻找 <div class="col-12 text-center">
时,没有匹配的 HTML。
Here's the HTML of the page
我不熟悉 Selenium 中的 waits
,想知道是否有人可以帮助我解决这个问题。
谢谢!
在 HTML 中,某些元素在 UI 渲染中视觉上位于其他元素之上是很常见的。当使用Selenium WebElement.click()
时,获取需要点击的元素的视觉维度,进行点击。如果有一个元素占据相同的视觉space,则抛出错误。
有 2 种可能的解决方案。
您可以使用下面的显式等待等待元素可点击
element = WebDriverWait(self.driver, 20).until(EC.presence_of_element_located((By.ID, 'lg_1166')))
element.click();
使用javascript执行器点击元素。这将触发 javascript 绕过视觉点击的元素点击。
element = driver.find_element_by_id('lg_1166')
driver.execute_script("arguments[0].click();", element)
我正在尝试使用 Selenium select 网页上的复选框,并使用这行代码 Python
self.driver.find_element_by_id('lg_1166').click()
但我收到此错误消息
Message: Element <input id="lg_1699" name="lg_1699" type="checkbox"> is not clickable at point (284,888) because another element <div class="col-12 text-center"> obscures it
然后,当我检查同一网页寻找 <div class="col-12 text-center">
时,没有匹配的 HTML。
Here's the HTML of the page
我不熟悉 Selenium 中的 waits
,想知道是否有人可以帮助我解决这个问题。
谢谢!
在 HTML 中,某些元素在 UI 渲染中视觉上位于其他元素之上是很常见的。当使用Selenium WebElement.click()
时,获取需要点击的元素的视觉维度,进行点击。如果有一个元素占据相同的视觉space,则抛出错误。
有 2 种可能的解决方案。
您可以使用下面的显式等待等待元素可点击
element = WebDriverWait(self.driver, 20).until(EC.presence_of_element_located((By.ID, 'lg_1166'))) element.click();
使用javascript执行器点击元素。这将触发 javascript 绕过视觉点击的元素点击。
element = driver.find_element_by_id('lg_1166') driver.execute_script("arguments[0].click();", element)