【问题标题】:Using Selenium in Java to get table contents在 Java 中使用 Selenium 获取表格内容
【发布时间】:2015-02-20 10:02:39
【问题描述】:

这是我另一篇文章的延续

Using JSoup to get data-code value of a table

我正在尝试使用 Selenium webdriver 中的 cssSelector() 方法获取表格上 <span> 标记内的文本

<table class ="team-list">
          <tr data-code="1">
              <td>
              <span>
                 Get This Text
              </span>
              </td>     
          </tr>
  </table>

我试过下面的代码,但这会打印出每一行所有单元格中的文本,但我只有需要得到&lt;span&gt;标签内的那个

WebDriver driver = new FirefoxDriver();
driver.get("http://www.example.com");

List<WebElement> elements = driver.findElements(By.cssSelector("table.team-list td"));

for(WebElement element: elements)
{
    System.out.println(element.getText());
}

【问题讨论】:

  • 使用.team-list td span ...你提供 td 所以它会给出所有 td 的文本,包括那些没有 span 的文本。
  • 这对我有用List&lt;WebElement&gt; elements = driver.findElements(By.cssSelector("table.team-list td &gt; td:nth-of-type(2)"));

标签: java selenium-webdriver web-scraping


【解决方案1】:

如果您知道要查找的文本,您可以执行以下操作:

WebDriver driver = new FirefoxDriver();
driver.get("http://www.example.com");

List<WebElement> elements = driver.findElements(By.cssSelector("table.team-list td"));

for(WebElement element: elements)
{
    if(element.getText().equals("Get This Text"))
       System.out.println(element.getText());
}

这可能是 o(n) 但如果您不关心可以解决问题的性能。

【讨论】:

    【解决方案2】:

    我认为您应该将选择器更改为:

    By.cssSelector("table.team-list span")
    

    【讨论】:

      【解决方案3】:

      试试这样的。

      WebDriver driver = new FirefoxDriver();
      driver.get("http://www.example.com");
      List<WebElement> elements = driver.findElements(By.cssSelector("table.team-list td"));
      
          for(WebElement element: elements)
          {
              try{
                 System.out.println(element.findElement(By.tagName("span")).getText());
               }(org.openqa.selenium.NoSuchElementException nsee){
               }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-07
        • 1970-01-01
        • 1970-01-01
        • 2015-07-23
        • 1970-01-01
        相关资源
        最近更新 更多