如何在 Selenium 中为表格类型的结构获取下一个兄弟元素?


我们可以在 Selenium webdriver 中为表格类型的结构获取下一个兄弟元素。下一个兄弟用于确定上下文节点的兄弟元素。

此外,这些兄弟元素应出现在与当前节点相同的层次结构中并具有相同的父元素。我们以一个带有表格标签的表格为例,该标签有多个带有标签 tr 的子元素。

然后,让我们尝试从第一行(包含表头)识别下面图像中突出显示的第三行元素。

语法

//table[@id='table1']/tbody/tr[1]/following-sibling::tr[2]/td

在这里,我们查找表格中的第三行,但我们提供了 followingsibling::tr[2],因为我们从第一行查找第三行。

示例

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class FollowingSiblingTable{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver",
         "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      //implicit wait
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //URL launch driver.
      get("https://sqengineer.com/practice-sites/practice-tables-selenium/");
      //identify third row from first row in form of list
      List<WebElement> l = driver.findElements(By.xpath ("//table[@id='table1']/tbody/tr[1]/following-sibling::tr[2]/td"));
      //iterate list to get text of third row elements
      for (int i = 0; i<l.size(); i++) {
         String colVal = driver.findElements(By.xpath ("//table[@id='table1']/tbody/tr[1]/following-sibling::tr[2]/td")) .get(i).getText();
         System.out.println("Values at third row after are : " + colVal);
      }
      driver.close();
   }
}

输出

更新于: 08-04-2021

3K+ 次浏览

启职业生涯

完成课程获得认证

开始
广告