2017-03-03 84 views
1

在网页上有几篇文章。我需要获得所有文章的链接。按类查找Selenium所有的链接

我使用Selenium和Powershell。

我做一个搜索:

FindElementByXPath("//*[contains(@class, 'without')]").getattribute("href")` 

但只得到一个链接到的第一篇文章。

如何获取所有文章的链接?

所有文章的链接查看:

<a class="without" href="http://articlelink.html"><h2>article</h2></a> 
+3

使用复数形式:'FindElementsByXPath' – wOxxOm

+0

谢谢!但现在我得到两个相同的链接到相同的元素。有可能避免重复? –

+0

我不知道Selenium,但是您可以在PS中删除重复列表:'sort -unique' – wOxxOm

回答

0

我不知道Powershell什么,但使用java with selenium你可以这样做类似下面的代码。

我知道这不是一个适当的答案来处理,但下面的代码会给你hint,你应该如何与其他语言。

List<WebElement> links = driver.findElements(By.className("without")); // Using list web-element get all web-elements, whose classname name as "without" 
System.out.println(links.size());    //total number of links on the page. 

for(int i = 0;i<links.size();i++)   
{ 
    System.out.println(links.get(i).getAttribute("href")); //Using for loop getting one by one links name. 
    links.get(i).click();       // click the link if you want to click 
    Thread.sleep(2500);       //wait for 2.5 seconds 
} 

希望我的上述答案能帮助你。

+0

.getText()不一定会返回URL。你的代码示例看起来很好,除了我会使用.getAttribute(“href”),而不是 –

+0

@Bill,你说得对,我也有正确的答案。顺便谢谢你的回复。 :) –

+0

@Andrew F,上述提示是否为你工作? –