如何清除Selenium中的缓存WebElement列表?

时间:2014-12-23 13:45:13

标签: selenium-webdriver

任何人都可以帮助我,在Java中可以清除每次执行时由Selenium定位的缓存元素吗?

我正在测试一个无法访问HTML代码且其组件没有固定ID(动态)的应用程序,因此我需要通过其内容恢复元素,不仅仅是应用程序的url不会改变,因为组件是通过ajax / jQuery生成的。

因此,当使用已在其他场合使用的xPath时,selenium不会执行新搜索并始终返回相同的元素。

在xpath下面,我用来找到页面上的Enter按钮:

 WebElement findElement = driver.findElement(By.xpath("//button[contains(.,'Entrar')]"));

如果您使用X页并在第Y页上重复相同的路径,请始终获取页面元素X.如何清除缓存?

2 个答案:

答案 0 :(得分:1)

是否有任何异常抛出无法找到元素。可能在您的案例中,页面y中的元素无法通过webdriver定位,因此前一个元素仍然存在。

答案 1 :(得分:0)

每次要使用该元素时,只需调用代码来查找元素。

findElement = driver.findElement(By.xpath("//button[contains(.,'Entrar')]"));

因此,每次使用该元素时,都会找到Page中的新元素。