【发布时间】:2018-07-15 14:24:03
【问题描述】:
我正在使用 java swing 创建一个应用程序来验证对象存储库,这将有助于维护 selenium 脚本。这个应用程序会启动一个 WebDriver 实例,然后让用户手动导航到他/她希望检查的元素。
我想获取用户单击的 WebElement 对象的实例,以便我可以将最后单击的 Web 元素作为返回 Xpath 的下面函数中的参数传递。
我在网络上找不到与此相关的任何内容。
public String getElementXPath(WebDriver driver, WebElement element) {
return (String)((JavascriptExecutor)driver).executeScript("gPt=function(c){if(c.id!==''){return'id(\"'+c.id+'\")'}if(c===document.body){return c.tagName}var a=0;var e=c.parentNode.childNodes;for(var b=0;b<e.length;b++){var d=e[b];if(d===c){return gPt(c.parentNode)+'/'+c.tagName+'['+(a+1)+']'}if(d.nodeType===1&&d.tagName===c.tagName){a++}}};return gPt(arguments[0]).toLowerCase();", element);
}
【问题讨论】:
标签: javascript selenium xpath selenium-webdriver webdriver