selenium 要点击的元素被其他元素遮挡 or 无法找到非可视范围内的元素

这篇具有很好参考价值的文章主要介绍了selenium 要点击的元素被其他元素遮挡 or 无法找到非可视范围内的元素。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

selenium 无法找到非可视范围内的元素 org.openqa.selenium.StaleElementReferenceException: The element reference of is stale;

either the element is no longer attached to the DOM, it is not in the current frame context, or the document has been refreshed selenium 要点击的元素被其他元素遮挡 org.openqa.selenium.ElementClickInterceptedException:

Element is not clickable at point (997,858) because another element

obscures it

Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'

selenium 要点击的元素被其他元素遮挡 or 无法找到非可视范围内的元素

 selenium 要点击的元素被其他元素遮挡 or 无法找到非可视范围内的元素

 

Selenium Web Driver & Java. Element is not clickable at point (x, y). Other element would receive the click - Stack Overflow

用下面的第6条

Solution

The error Element is not clickable at point (x, y) can arise from different factors. You can address them by either of the following procedures:

1. Element not getting clicked due to JavaScript or AJAX calls present

Try to use Actions Class:

WebElement element = driver.findElement(By.id("navigationPageButton"));

Actions actions = new Actions(driver);

actions.moveToElement(element).click().build().perform();

2. Element not getting clicked as it is not within Viewport

Try to use JavascriptExecutor to bring the element within the Viewport:

WebElement myelement = driver.findElement(By.id("navigationPageButton"));

JavascriptExecutor jse2 = (JavascriptExecutor)driver;

jse2.executeScript("arguments[0].scrollIntoView()", myelement);

3. The page is getting refreshed before the element gets clickable.

In this case induce ExplicitWait i.e WebDriverWait as mentioned in point 4.

4. Element is present in the DOM but not clickable.

In this case induce ExplicitWait with ExpectedConditions set to elementToBeClickable for the element to be clickable:

WebDriverWait wait2 = new WebDriverWait(driver, 10);

wait2.until(ExpectedConditions.elementToBeClickable(By.id("navigationPageButton")));

5. Element is present but having temporary Overlay.

In this case induce ExplicitWait with ExpectedConditions set to invisibilityOfElementLocated for the Overlay to be invisible.

WebDriverWait wait3 = new WebDriverWait(driver, 10);

wait3.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("ele_to_inv")));

6. Element is present but having permanent Overlay.

Use JavascriptExecutor to send the click directly on the element.

WebElement ele = driver.findElement(By.xpath("element_xpath"));

JavascriptExecutor executor = (JavascriptExecutor)driver;

executor.executeScript("arguments[0].click();", ele);文章来源地址https://www.toymoban.com/news/detail-499743.html

到了这里,关于selenium 要点击的元素被其他元素遮挡 or 无法找到非可视范围内的元素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包