【问题标题】:How to set xPath of Java Selenium when there are two table of same class当有两个相同类的表时如何设置Java Selenium的xPath
【发布时间】:2021-03-18 17:50:42
【问题描述】:

我尝试使用 Java Selenium 测试此 WEBSITE 表数据,但网页上有两个表具有相同的类名 datatable。当我设置为:

private final static String table   = "//table[contains(@class,'datatable')]"; 

然后它在页面上抓取第一个表,一旦给定第一页的两个表数据。

如何为同一页面上的一个类的每个表分别设置 xPath?

【问题讨论】:

    标签: java selenium selenium-webdriver xpath selenium-chromedriver


    【解决方案1】:

    你可以使用类似的索引

    private final static String tablefirst   = "(//table[contains(@class,'datatable')])[1]"; 
    private final static String tablelast   = "(//table[contains(@class,'datatable')])[last()]"; 
    

    你也可以使用下面的 xpath。更通用。

    private final static String tablefirst   = "//p[text()='Found 1096 Airline Codes']/following::table[1]"; 
    private final static String tablelast   = "//p[text()='Found 9130 Location Codes']/following::table[1]"; 
    

    【讨论】:

    • 我试图接受但页面开始时间 3 分钟接受它。刚刚完成,我点击了。发自内心的感谢
    【解决方案2】:

    如果您知道,这很容易,并且根据您的问题,我假设您知道哪个是第一张桌子,哪个是第二张桌子。在这种情况下使用:

    driver.findelements(By.xpath("//table[contains(@class,'datatable')]")).get(index)
    

    如果你想要第一张桌子

    index=0
    

    如果你想要第二张桌子

    index=1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 2017-12-25
      • 2017-01-10
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多