「Web UI自动化测试」element is not clickable at point解决办法

今天有同事在我们测试平台上编写UI测试用例,有个【确定】按钮页面上可以正常操作,根据所写的xpath路径也能找到这个元素。但是在执行UI脚本时报错:提示is not clickable at point (1183, 607)。

2022-06-20 11:50:55:674:ERROR autotestclient.execution.webdriver.ex.WebCaseExecution.runWebStep(WebCaseExecution.java:226) – 元素定位过程或是操作过程失败或异常!

org.openqa.selenium.ElementClickInterceptedException: element click intercepted: Element … is not clickable at point (1183, 607). Other element would receive the click: …

(Session info: chrome=102.0.5005.115)

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

System info: host: ‘LAPTOP-DHR34KHR’, ip: ‘172.30.192.1’, os.name: ‘Windows 10’, os.arch: ‘amd64’, os.version: ‘10.0’, java.version: ‘1.8.0_73’

Driver info: org.openqa.selenium.chrome.ChromeDriver

Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 102.0.5005.115, chrome: {chromedriverVersion: 101.0.4951.41 (93c720db8323…, userDataDir: C:UsersADMINI~1AppDataL…}, goog:chromeOptions: {debuggerAddress: localhost:22005}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}

Session ID: f2569c51b6fe8840df94fdbc5ac4b09c

一开始以为是页面元素未加载出来、或者被其他页面元素覆盖了、或者页面元素是在iframe层里面。经排查,这个报错并不是非以上常见的原因。

于是从网上搜索解决办法,网上给出的解决办法基本上都是使用js模拟鼠标点击的办法,使用该方法的确可以点【确定】按钮,但是它把所有的弹窗页面都关闭。不得其解,只能另找途径进行解决。

WebElement element = driver.findElement(By.xpath(“element_xpath”));

JavascriptExecutor executor = (JavascriptExecutor)driver;

executor.executeScript(“arguments[0].click();”, element);

最终,笔者突然想到,在webdriver中,有专门的一个类,是用来进行鼠标、键盘的模拟操作的,那就是Actions类,或许可以使用这种折中的解决办法,来模拟鼠标左键单击页面元素操作。问题最终得以解决。

#页面元素

WebElement element = driver.findElement(By.xpath(“element_xpath”));

Actions action = new Actions(driver);

#模拟鼠标左键单击页面元素

action.click(element);

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
上一篇 2022年6月22日 12:02
下一篇 2022年6月22日 12:02

相关推荐

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息