Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Selenium webdriver定位自动生成Id?_Java_Selenium Webdriver - Fatal编程技术网

Java 如何使用Selenium webdriver定位自动生成Id?

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) 和/或 //*[

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


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

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

您可以使用修改过的xpath或简单的xpath来实现不同的功能

1) 包含()

其中模型是自动生成id的常量部分

2) 和/或

//*[contains(@id,'ABC') AND @class='xyz']
更换为或用于不同的条件

3) 有时我发现ID不包含任何公共文本

//*[contains(@class,'qwe')]
现在可能是这样,这将为您提供元素列表 所以你有两个选择

  • 使用ele.get(0)
  • 对所有元素使用循环,对某些元素使用放置条件
  • //不确定上述驱动程序语法是否使SE WD等待

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

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

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