2016-07-08 11 views
-1

JavaのSelenium WebDriverを使用してリンクをクリックしようとしています。私のJava:私のページのHTMLは次のようになりますSelenium WebDriver Java cssSelector Span

driver.findElement(By.cssSelector("span[data-seleniumid=\"Address0\"]")).click(); 

<span data-seleniumid="Address0" class="ATAddressLine">1 The Road, Town, City, Postcode</span> 

Eclipseでエラーがある:

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"css selector","selector":"span[data-seleniumid=\"Address0\"]"} 

おかげ

+0

これ以外に、1行のコード以外で何を試しましたか?セレクタを作成する他の方法を学ぶことができるように、いくつかのCSSリファレンスとチュートリアルを見て、さまざまなロケータメソッドを試すことをお勧めします。 – JeffC

答えて

0

ご協力いただきありがとうございます。要素がiframeのポップアップにあり、Seleniumがその背後のページでそれを検索していたため、要素が見つかりませんでした。

この投稿:https://stackoverflow.com/a/32836709/6565982助けました。将来的には誰も私のコードについては

は今です:

WebElement iFrame= driver.findElement(By.tagName("iframe")); 
     driver.switchTo().frame(iFrame); 

     // Select an address 
     driver.findElement(By.cssSelector("span[data-seleniumid=\"Address0\"]")).click(); 

     // Switch back to the default page 
     driver.switchTo().defaultContent(); 

おかげで再び。

0

私は別のセレクタをしようとするだろう"span.ATAddressLine"のようになります。 webdriverがあなたの属性"data-seleniumid"を好きであるかどうかは分かりません。

+0

Seleniumは属性を好まない、または嫌いです。正しく実行されると、すべての属性が機能します。 – JeffC

1

内側の二重引用符をエスケープするのではなく、代わりに単一の引用符を使用してください。

driver.findElement(By.cssSelector("span[data-seleniumid='Address0']")).click(); 
+0

元の回答が許可されていないコードのみの回答に近すぎました。将来的には、あなたのコードが問題を解決するために何をしているのかについて、いくつかのコメントを追加して、OPと将来の読者がその違いを簡単に見て理解できるようにしてください。 – JeffC

0

はクリック可能してから上記のコードを使用するための要素を待っているようなwebdriverを待ち条件を持っています。

関連する問題