我尝试获取所有已更改的元素。点击元素后。
我尝试着做下一个:
List<WebElement> lstWeb = driver.findElements(By.xpath("//*");
driver.findElement(By.id("ImprBtn"));
List<WebElement> lstWebAfter = driver.findElements(By.xpath("//*");
lstWebAfter.removeAll(lstWeb );
问题在于需要很长时间,因为在每个列表中我都有超过800个Web元素。
点击元素后,有一种有效的方法可以识别DOM中的更改吗?
答案 0 :(得分:0)
一般来说,我认为设计测试用例并不是很好的方法(比较一些操作之前和之后的整个DOM),可能是因为没有100%正确的案例设计。
更仔细地设计您的测试用例,准备您的预期结果和预期的DOM更改(即Web应用程序的更改),并将它们与实际结果进行比较。
要了解有关推荐的自动化设计的更多信息,请阅读PageObjects模式。 你可以为它找到很好的实现here(不要介意语言,只需阅读代码:))。
如果仍需要解决方案来识别DOM更改,请检查这些解决方案:
答案 1 :(得分:0)
您应该缩小xpath查询范围,以便更有效地搜索DOM。
如果你对原始xath不太满意,我有一个帮助库,你可以根据LINQ-esq语法创建xpath。
分享链接,以防您觉得有用
http://www.unit-testing.net/CurrentArticle/How-to-Create-Xpath-From-Lambda-Expressions.html