Java 如何使用Selenium webdriver定位自动生成Id?
1) 我想找到自动生成的Id,它是由JSF在Javabase应用程序中生成的,在所有系统中都是不同的Java 如何使用Selenium webdriver定位自动生成Id?,java,selenium-webdriver,Java,Selenium Webdriver,1) 我想找到自动生成的Id,它是由JSF在Javabase应用程序中生成的,在所有系统中都是不同的 2) 使用selenium webdriver定位该元素的解决方案是什么?您可以使用webdriver定位任何元素,在您的情况下,您可以使用xpath进行定位,然后使用get属性值定位自动生成的ID。 此外,您还需要更具体地说明您的查询,建议您发布html代码。您可以使用修改过的xpath或简单的xpath来实现不同的功能 1) 包含() 其中模型是自动生成id的常量部分 2) 和/或 //*[
2) 使用selenium webdriver定位该元素的解决方案是什么?您可以使用webdriver定位任何元素,在您的情况下,您可以使用xpath进行定位,然后使用get属性值定位自动生成的ID。
此外,您还需要更具体地说明您的查询,建议您发布html代码。您可以使用修改过的xpath或简单的xpath来实现不同的功能 1) 包含() 其中模型是自动生成id的常量部分 2) 和/或
//*[contains(@id,'ABC') AND @class='xyz']
更换为或用于不同的条件
3) 有时我发现ID不包含任何公共文本
//*[contains(@class,'qwe')]
现在可能是这样,这将为您提供元素列表
所以你有两个选择
driver.findElement(By.xpath(".//*[@id='ext-gen153']")).click();
driver.findElement(By.xpath(".//*[@id='ext-gen163']")).click();
请提供一些代码
driver.findElement(By.xpath(".//*[@id='gwt-uid-41']")).click();
driver.findElement(By.xpath(".//*[@id='gwt-uid-31']")).click();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.findElement(By.xpath(".//*[@id='ext-gen153']")).click();
driver.findElement(By.xpath(".//*[@id='ext-gen163']")).click();