2017-03-03 4 views
1

を持つクラスによってすべてのリンクを検索します。私はすべての記事へのリンクを取得する必要があります。いくつかの記事があるWebページで、セレン

私はセレンとPowerShellを使用しています。

私は、検索を実行します。

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

だけ最初の記事へのリンクを取得します。すべての記事へのリンクを取得する方法

すべてのリンクの記事を表示:

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

複数形を使用する: 'FindElementsByXPath' – wOxxOm

+0

ありがとうございます!しかし、今私は同じ要素に2つの同一のリンクを取得します。重複を避けることは可能でしょうか? –

+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、上記のヒントはあなたのために働いていますか? –

関連する問題