java—如何在SeleniumWebDriver中获取对象的通用xpath

qzlgjiam  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(438)
String str = "some value" ;

getTestBase().getDriver().findElement(By.xpath("//h2[.='" + str + "']//parent::div//div[@id='sectionList'][1]/section/div/button")).click();

我需要将上面的内容放入循环中,以便[1]每次都不断增加,如何更新上面的xpath作为整数?

j7dteeu8

j7dteeu81#

String str = "some value" ;
WebDriver driver = getTestBase().getDriver();
for(int i=0; i<5; i++){
    driver.findElement(By.xpath("//h2[.='" + str 
    +"']//parent::div//div[@id='sectionList']["+i+"]/section/div/button")).click();
 }

这应该能解决你的问题。5只是我在写解时假设的任意限制。
另一方面,您可以尝试获取所有元素并将这些元素存储在列表中。然后解析列表以获取按钮并单击它们。
比如:

String str = "some value" ;
WebDriver driver = getTestBase().getDriver();
List<WebElement> listOfButtons = driver.findElements(By.xpath("//h2[.='" + str + "']//parent::div//div[@id='sectionList']//section/div/button""));
for(WebElement el: listOfButtons){
    el.click();
}

相关问题