【问题标题】:How to extract HTML links from a table using Selenium?如何使用 Selenium 从表中提取 HTML 链接?
【发布时间】:2015-11-19 02:36:47
【问题描述】:

我正在使用 Java 和 Selenium 使用以下代码:

public static void main(String[] args){
    WebDriver driver;
    DesiredCapabilities caps; 
    caps = new DesiredCapabilities();
    caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
            "lib/phantomjs.exe"); 
    caps.setBrowserName(DesiredCapabilities.phantomjs().getBrowserName());
    driver = new PhantomJSDriver(caps);
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    driver.get("https://www.cdp.net/en-US/Pages/CDPAdvancedSearchResults.aspx?k=microsoft");
    WebElement element = driver.findElement(By.className("ms-vb2"));
    String text = element.getText();
    String href = element.getAttribute("href");
    driver.manage().deleteAllCookies(); 
    driver.quit();
    System.out.println(text + " " + href);  
}

我正在尝试使用代码的页面的特定部分包含以下内容。我正在尝试从ms-vb2 类中提取href,即https://www.cdp.net/en-US/Results/Pages/Company-Responses.aspx?company=11930

<td class="ms-vb2"><a href="https://www.cdp.net/en-US/Results/Pages/Company-Responses.aspx?company=11930">Microsoft Corporation</a><br/>USA</td>

我收到了文本,但没有收到 href。我怎样才能提取它?

【问题讨论】:

    标签: java html parsing selenium web


    【解决方案1】:

    driver.findElement(By.className("ms-vb2")) 实际上会匹配 td 元素:

    <td class="ms-vb2"><a href="https://www.cdp.net/en-US/Results/Pages/Company-Responses.aspx?company=11930">Microsoft Corporation</a><br>USA</td>
    

    它没有href 属性。

    你需要找到里面的链接。我会做一个 CSS 选择器:

    driver.findElement(By.cssSelector(".ms-vb2 > a"))
    

    这里我们直接在具有ms-vb2 类的元素内搜索a 元素。

    【讨论】:

      猜你喜欢
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      • 2017-10-11
      • 1970-01-01
      • 2016-07-14
      相关资源
      最近更新 更多