2016-06-20 7 views
-2

This is what the error displays when I use the xpathセレンwebdriverをHTMLコード私は</p> <pre><code>html/body/div[1]/div/div/div[2]/div[2]/div[2]/a </code></pre> <p>のXPathを持っているテキストをクリックするセレンwebdriverを上どのようなコマンドを使用します

Xpath私は

driver.findElement(By.xpath("html/body/div[1]/div/div/div[2]/div[2]/div[2]/a")).click(); 

が、それでもを使用してみました動作しません...任意の提案?

+0

を使用すると、 "動作しない" とはどういう意味ですか? – alecxe

+0

そのxpathを使用してコマンドを実行しない – user6401108

+0

'driver.findElement(By.xpath( "/ html/body/div [1]/div/div/div [2]/div [2]/div [2]/a "))。クリック();'しかしまだ動作していません@alecxe – user6401108

答えて

0

xpathが正しくありません。 html/body/div[1]/div/div/div[2]/div[2]/div[2]/aで絶対パスをヒットしようとしています。 //input[@id='partnerId']/following-sibling::a

driver.findElement(By.xpath("/html/body/div[1]/div/div/div[2]/div[2]/div[2]/a")).click();

+0

それはまだ動作しませんでした... " div/div/div [2]/a "}" – user6401108

0

代わりの要素を識別するための信頼できる方法ではありません、絶対XPathを使用して、あなたはこれを試すことができます:あなたは代わりに、それは/html/body/div[1]/div/div/div[2]/div[2]/div[2]/a

試してみるべきである/が欠落しています。一意のIDを持つ要素を見つけ、タグを持つ最も近い兄弟を探しますa

+0

詳細情報を編集してください。コード専用と「試してください」の回答は、検索可能なコンテンツが含まれていないため、推奨されません。なぜ誰かが「これを試してみる」べき理由を説明しません。私たちはここで知識のためのリソースとなるよう努力しています。 – abarisone

0

配置する要素が別のiframeにあるときに同様の問題が発生しました。 FirePathまたはソースHTMLを使用
、(By.xpath( "/ HTMLを任意のインラインフレームとYESの場合がある場合。)(
driver.switchToを使用し、フレーム( "framename") を確認した後
driver.findElementを使用div/div [2]/div [2]/a "))をクリックします。

enter image description here

0

何ちょうどBy.linkText()By.partialLinkText()を使用しての代わりに、XPathのでしょうか?このようにXPathを使用することは "簡単"ですが、非常に壊れやすいので、私はそれに対してお勧めします。

driver.findElement(By.partialLinkText("EARN up to ")); 

あなたは、もちろん、一部のリンクテキストは、あなたが探しているとどのように独自のテキストがページ上でされているものに応じて、多かれ少なかれ特異的であるように編集することができます。


これは機能しなかったので、別の方法を試してみましょう。あなたが上に描いたテーブルのすべてのリンクを見てみましょう。次のコードは、テーブルのAタグを取得し、最初のタグをクリックします。私の推測では、リンクに含まれるテキストが変更される可能性が高いため、リンクテキストを使用するよりもリンクを見つけるより柔軟な方法があると考えられます。以下が動作するかどうかを確認してください。

List<WebElement> links = driver.findElements(By.cssSelector("div.data-block-sub-popular-offers > div.row-heading > a")); 
links[0].click(); 
+0

Hey jeffは部分文字列とリンクテキストを使って試しましたが、まだ動作しませんでした.. 'driver.findElement(By.linkText( "gの2.5%までのEARN ..."))。 – user6401108

+0

は、**要素を見つけることができません:{"メソッド": "リンクテキスト"、 "セレクター": "gの2.5%までのEARNを取得します"} ** – user6401108

+0

別のアプローチで私の答えを更新しました。それが動作するかどうかを確認します。私はそれがまだあなたのニーズに合っていればより柔軟だと思います。 – JeffC

0

すぐ下にXPathを使用します。

driver.findElement(By.xpath("//div[@class='row-40percent']/a[contains(text(),'Earn upto 2.5%')]").click(); 
関連する問題

 関連する問題