2017-06-26 7 views
0

下記の画像に記載されているようなスパンタグが多数あり、それぞれ独自のidを持つ独自のaタグが「選択項目」としてあります。スパンタグの名前を使って特定のタグを選択する必要があります。Selenium WebDriver(Java)の別のWeb要素を参照して要素をクリックする方法は?

Need to click the a-tag button using the text Mayo Chicken

画像における上記のHTMLスニペットからテキストマヨチキンを使用して、Aタグのボタンをクリックする必要があります。

私はそれは私のために動作しません下記のセレンスクリプト

WebElement select = driver.findElement(By.xpath("//*[contains(text(),'Mayo Chicken (Single)')]")); 
WebElement add = select.findElement(By.id("chooseitem")); 

を試してみました。

driver.findElement(By.id("chooseitem")); 

上記のコードは、そのIDが「chooseitem」も、デフォルトで、ページの最初の項目を選択するが、選択されるべきかを定義する必要があります。

誰かが私を助けることができますか?

+1

このxpath - "// span {(text()、 'Mayo chicken')/ ancestor :: div [4] // a"を試すことができますか?あなたはサイトのURLを与えることができます –

+0

あなたはdata-pkeyを使用できませんか? Like:String xpath = "// * [@ data-pkey = '.....']"; WebElement select = driver.findElement(By.xpath(xpath)); – Sirim

+0

@santhoshkumarありがとうございました!それは今働く。祖先をより良い方法で理解するためのリンクを私に教えてください。 – Sugan

答えて

1

を使用我々はchickedの共通の親(祖先)要素とクリッカブル「」タグを取得する必要がありますがタグ「a」にナビゲートすることができます。 xpath以下では理想的に動作するはずです。

"//span[contains(text(),'Mayo chicken')]/ancestor::div[4]//a" 

注:第四親は「マヨチキン」とタグ「」のための共通の祖先であるため、ここで私は、[4]のdivを使用していました。異なるXPathの軸の詳細については

が、これはあなたを助けthis-> https://www.w3schools.com/xml/xpath_axes.asp

希望を参照してください。ありがとう。

0

xpathの位置を使用して、開発者ツールのF12キーを押して、「要素ボタンを選択」をクリックし、ページ内の興味のある要素をクリックします。画像には1つ以上の線が強調表示され、行 - >コピー - >コピーxpathを右クリックします。あなたはその上の名前やIDまたはを共有する複数の要素を持っているとき、あなたはそれを使用することができます

//td[2]/div/span[1] 

:XPathの位置がなる

//*[@id="comment-76500216"]/td[2]/div/span[1] 

:あなたは、以下の行のようなものを持っています。

そして、あなたが持っているでしょう:

WebElement select = driver.findElement(By.xpath("//td[2]/div/span[1]")); 

PS:私たち、その後、グーグルクローム

関連する問題