我的测试有这个问题..
driver.findElement(By.xpath("//html/body/div[2]/div/div/div[2]/div[2]/div/div[2]/div/div/div/div/div/div/div/ul/li[2]/a[2]/em/span/span/span")).click();
找不到元素。
日食显示此错误消息无法使用定位节点 // HTML /体/格[2] / DIV / DIV / DIV [2] / DIV [2] / DIV / DIV [2] / DIV / DIV / DIV / DIV / DIV / DIV / DIV / UL /利[ 2] / A [2] / EM /量程/量程/跨度
答案 0 :(得分:0)
编辑:发布编辑以反映实际问题的答案。原始答案如下。
长XPath表达式是脆弱的,并且在依赖它们时测试很容易失败:文档中其他地方的完全不相关的更改会使一切变得混乱,即使您意识到问题,测试的代码也是如此。更难维护。
在这种特殊情况下,由于网站是由GWT生成的,所以更糟糕的是 - 对实际的HTML更改几乎无法控制。使用GWT时的一个好方法是使用ensureDebugId方法(请参阅注释中的链接)。
您确定此XPath表达式是否正确?其他测试是否适用于此驱动程序?
我建议避免使用那样的长XPath表达式 - 从长远来看,在页面某处而不是DOM的根目录下在id指定的div处启动表达式会不会更安全?