2017-09-16 20 views
0

私はウィキペディアのページに表示されているテキストに基づいて要素を見つけようとしました。さて、まず、私はdriver.findElement(By.LinkText("English"));を試してみました。 しかし、代わりにdriver.findElement(By.partialLinkText("English"));で以下のコードを試してみました。 誰かがそのウィキペディアのページに基づいて私を説明することができます、それはなぜですか?この例は本当にシンプルで、なぜdriver.findElement(By.LinkText("English"));が機能しないのか分かりません。セレンの "By.partialLinkText"と "By.LinkText"の違いは?

driver.get("http://www.wikipedia.org"); 
WebElement link; 
link = driver.findElement(By.partialLinkText("English")); 
link.click(); 

答えて

1

名前はすべてそれを言います。
LinkText:それは与えられたテキスト

を含める要素を返し私はhttp://www.wikipedia.orgを見ていると私はリンクも他のテキスト要素が含まれていることを見て、指定されたテキスト
PartialLinkTextの完全一致で要素を返します。それが唯一の「英語」を期待するので、なぜそれがテキストを見つけることができませんです

<a ... > 
    <strong>English</strong> 
    <small> 
     <bdi dir="ltr">5&nbsp;472&nbsp;000+</bdi> 
     <span>articles</span> 
    </small> 
</a> 
+0

しかし、 "英語"は全体のテキストです.... – Suppe

+0

スペースや他の文字は含まれていませんか? –

+0

良い質問ですが、Firebugで要素を調べると、 '英語 'と表示されます。だから私はスペースや他の文字がないと思います – Suppe

1

By.LinkText: - 内部にある正確なテキストを検索します。

By.partialLinkText: - 内部にある同様のテキストを検索します。

+0

「英語」は正確なテキストですが、機能しませんでした。 – Suppe

+0

あなたはhtmlコードを共有できますか? –

関連する問題