【发布时间】:2012-09-21 12:45:43
【问题描述】:
我已经实现了数据驱动框架,因此我的 isTextPresent 函数可能具有动态值。另外,我的应用程序中需要有很多断言文本。我尝试使用 xpath 之类的
boolean b=driver.findElement(By.xpath("//*[contains(.,stringc3)]")).getText().contains(stringc3);
其中 stringc3 是要检查的文本。但是这个实现需要很长时间(使用 webdriverbackedselenium,我的测试过去需要大约 3 分钟,但使用 webdriver 及以上代码,大约需要 20 分钟)。那么有没有办法让这个测试运行得更快呢?
我了解到这些函数现在支持从 selenium ide 导出 (http://code.google.com/p/selenium/source/detail?r=17718)
那么,有没有计划在 webdriver 中实现 isTextPresent 功能?
【问题讨论】:
-
第一个问题是您没有直接使用 XPath 查询。不管你怎么做,你在你的查询中使用
*,所以XPath引擎会搜索整个页面中的每一个元素。其次,我不确定您为什么要检查两次文本?您在 XPath 中检查一次,然后在代码中再次检查。为什么?第三,您是否实施了任何超时? Selenium 将等待这些超时的整个长度。四、你试过用其他驱动吗?对特定驱动程序是否很慢? -
感谢您的回复。对于您的问题,由于我的框架是数据驱动的框架,因此我无法在没有“*”的情况下定义 xpath,因为文本可能出现在任何位置(表内/表外)。其次,我的代码只有在我检查文本两次时才会发现问题。否则,它会通过它们而不会大喊错误。第三,我给了 30 秒的超时时间,它工作正常。我不认为,这是超时的问题。对于第四个问题,我没有尝试使用其他驱动程序。
-
“其次,我的代码只有在我检查文本两次时才会发现问题。否则,它会通过它们而不会大喊错误。” ...这里有一些很不对劲的地方...
标签: java selenium selenium-webdriver