如何使用Selenium webdriver找到Autogenerate Id?

时间:2015-10-26 04:35:31

标签: java selenium-webdriver

1)我想找到由JSF在java基础应用程序中生成的自动生成的Id,这在所有系统中都是不同的。

2)使用selenium webdriver找到该元素的解决方案是什么?

3 个答案:

答案 0 :(得分:0)

您可以使用webdriver定位任何元素,在您的情况下,您可以使用xpath进行定位,然后使用get属性值来查找自动生成的ID。 此外,您需要更具体地查询您的查询,始终建议发布HTML代码。

答案 1 :(得分:0)

您可以使用带有不同功能的修改或简单的xpath。

1)包含()

//ul[contains(@id, 'Model')]

模型是自动生成ID的常量部分。

2)AND / OR

//*[contains(@id,'ABC') AND @class='xyz']

替换并使用OR来表示不同的条件

3)有时我发现ID不包含任何常用文本

//*[contains(@class,'qwe')]

现在可能会给你元素列表

所以你有两个选择

  1. 使用ele.get(0);
  2. 对所有元素使用循环并为某些元素设置条件

答案 2 :(得分:0)

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); 

//不确定上面的驱动程序语法是否使SE WD等待

//下面有自动生成的id /想要知道如何搜索元素的xpath

//我的脚本失败并说找不到xpath,因为每次登录门户时id都会改变

driver.findElement(By.xpath(".//*[@id='ext-gen153']")).click();
driver.findElement(By.xpath(".//*[@id='ext-gen163']")).click();