driver.findelement找不到tab元素:

时间:2011-05-17 12:48:24

标签: gwt webdriver

我的测试有这个问题..

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 /量程/量程/跨度

1 个答案:

答案 0 :(得分:0)

编辑:发布编辑以反映实际问题的答案。原始答案如下。

长XPath表达式是脆弱的,并且在依赖它们时测试很容易失败:文档中其他地方的完全不相关的更改会使一切变得混乱,即使您意识到问题,测试的代码也是如此。更难维护。

在这种特殊情况下,由于网站是由GWT生成的,所以更糟糕的是 - 对实际的HTML更改几乎无法控制。使用GWT时的一个好方法是使用ensureDebugId方法(请参阅注释中的链接)。


您确定此XPath表达式是否正确?其他测试是否适用于此驱动程序?

我建议避免使用那样的长XPath表达式 - 从长远来看,在页面某处而不是DOM的根目录下在id指定的div处启动表达式会不会更安全?