任何人都可以帮助我,请在Java中清除Selenium每次执行的缓存元素。如何清除Selenium中的缓存WebElement列表?
我正在测试一个无法访问HTML代码并且其组件没有固定ID(是动态的)的应用程序,所以我需要通过其内容恢复元素,不仅如此,应用程序不会更改,因为组件是通过ajax/jQuery生成的。
因此,当使用已在另一场合使用过的xPath时,硒并不会执行新的搜索并始终返回相同的元素。
下面我用它来定位页面上的Enter键中的XPath:
WebElement findElement = driver.findElement(By.xpath("//button[contains(.,'Entrar')]"));
如果您使用X页面,重复的Y形相同的路径,始终让页面元素X.我如何清除缓存?
不会引发异常,并始终返回第一次使用时找到的相同元素的xpath。有可能Selenium没有找到元素,因为应用程序的url没有改变,我相信组件是通过Ajax/JQuery“加载”的,整个应用程序的执行被显示在主页面上,URL开始并且在本地主机上结束:8083 – kubo
在搜索页面y中的元素之前,可以尝试在元素中存储null。即使如果它没有工作,可能页面x中的元素仍然在DOM中,即使在页面Y中。如果有两个元素具有相同的内容,则必须验证它的DOM。因此,默认情况下,硒只会获取第一个元素,或者您必须指定您需要的第n个元素。 findElement = driver.findElements(By.xpath(“// button [contains(。,'Entrar')]”))[n]; – Vaish
谢谢Vaish,页面有多个相同内容的元素... – kubo