2017-02-25 14 views
-1

私はページにログアウトボタンを持っています。私はSelenium.Followingでそれを自動化しようとしています、その要素のソースコードです。ログアウトボタンのCssセレクタ

<a class="_2k0gmP" data-reactid="53" href="#">Log Out</a> 

これは私が

driver.findElement(By.cssSelector("._2k0gmP[text='Log Out']")); 

を使用していたコードですが、私は繰り返しませこうしたElemetは例外と時々無効なセレクター例外は認められなかっ取得しています。誰かが私にこれを手伝ってもらえますか?

答えて

0

はアンダースコアを出したままにしないでください:

driver.findElement(By.cssSelector("._2k0gmP[text='Log Out']")); 

をただし、この場合には、私は

driver.findElement(By.linkText("Log Out")); 
+0

CSSセレクタを使用してテキストを検索することはできません。 – JeffC

+0

@Gecki、linkTextセレクターは実際に働いた。 –

0

XPathの希望:

driver.findElement(By.xpath("//a[text()='Log Out']"); 
+1

これは理論的に質問に答えるかもしれませんが、単なるコードのみの回答ではなく、答えの説明を提示した方が良いでしょう。 – JeffC

1

をすることができますので、あなたが「InvalidSelectorExceptionを取得していますcssSelectorを使用して、内部HTMLテキストに基づいて要素を検索します。そのためには、xpathまたはlinkTextセレクタを使用できます。

のxpath:driver.findElement(By.xpath(".//a[text()='Log Out']");

linkText:あなたは@geckiがそうあなたのセレクタが存在しないクラスを探していたと述べたように、クラスセレクタに_を残しているためdriver.findElement(By.linkText("Log Out"));

NoSuchElement例外がおそらくスローされました。

+0

はい@acikojevic、実際に働いたlinkTextオプションです。ありがとうございます。 –