Selenium - 元素不可点击

Selenium - Element is not clickable at point(Selenium - 元素不可点击)
本文介绍了Selenium - 元素不可点击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在使用 selenium 作为测试脚本.我收到以下错误,并且此错误随机发生.当我跑 10 次时,我得到了大约两次.所以它不是真正可复制的.有谁知道为什么会这样?我尝试单击的元素在浏览器中绝对可见并且不会四处移动,因此无需调整大小或拖动元素.我正在使用 chrome webdriver 并阅读了其他故障排除策略(调试"元素无法点击"错误),它们似乎与我的问题无关.我也等了足够的时间.

I am using selenium for test script. I am getting following error and this error randomly occur. When I run 10 times, I get this about twice. So it's not really reproducible. Does anyone know why this is happening? the element I am trying to click is definitely visible in the browser and doesn't move around so there is no need to resize or drag element. I am using chrome webdriver and I read other troubleshooting strategies(Debugging "Element is not clickable at point" error) and they don't seem relevant to my issue. I waited enough time as well.

UnknownError: unknown error: Element is not clickable at point (167, 403). Other element would receive the click: <div class="leftMasterBackground"></div>

推荐答案

您可以执行许多步骤来提高单击不同 UI 元素时的稳定性:

There are a number of steps you can do in order to improve the stability while clicking on different UI elements:

  • 显式等待它在 DOM 中存在
  • 滚动进入元素视图
  • 检查是否可点击
  • Explicitly wait for it's presence in the DOM
  • Scroll into the element view
  • Check if clickable

对稳定性有帮助吗?

WebDriverWait wait = new WebDriverWait(driver, 3)
JavascriptExecutor js = ((JavascriptExecutor) driver)

//presence in DOM
wait.until(ExpectedConditions.presenceOfElement(By.id("ID")));

//scrolling
WebElement element = driver.findElement(By.id("ID")));  
js.executeScript("arguments[0].scrollIntoView(true);", element);

//clickable
wait.until(ExpectedConditions.elementToBeClickable(By.id("ID")));

此外,如果您决定覆盖默认的 Actions 界面有更多自定义,您可以使用两种类型的点击(例如):click() 将具有所有这些稳定性步骤和 fastClick() 这将是没有任何变化的默认点击.

Further, if you will decide to override the default Actions interface with more customized one, you can use two type of clicks (for example): click() which will have all those stability steps and fastClick() which will be the default clicking without any varification.

这篇关于Selenium - 元素不可点击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

SCRIPT5: Access is denied in IE9 on xmlhttprequest(SCRIPT5:在 IE9 中对 xmlhttprequest 的访问被拒绝)
XMLHttpRequest module not defined/found(XMLHttpRequest 模块未定义/未找到)
Show a progress bar for downloading files using XHR2/AJAX(显示使用 XHR2/AJAX 下载文件的进度条)
How can I open a JSON file in JavaScript without jQuery?(如何在没有 jQuery 的情况下在 JavaScript 中打开 JSON 文件?)
quot;Origin null is not allowed by Access-Control-Allow-Originquot; in Chrome. Why?(“Access-Control-Allow-Origin 不允许 Origin null在铬.为什么?)
How to get response url in XMLHttpRequest?(如何在 XMLHttpRequest 中获取响应 url?)