我使用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。我怎样才能提取出来?
答案 0 :(得分: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"))
我们在这里直接在a
类的元素内搜索ms-vb2
元素。