2017-06-26 101 views
0

有很多跨度標籤,如下圖中提到的,每個人都有自己的一個標籤的唯一ID爲「chooseitem」。我需要使用span標籤中的名稱選擇特定的標籤。如何點擊參照硒的webdriver(Java)的另一網絡元素的元素?

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

需要使用從圖像在上面的HTML代碼段文字梅奧雞點擊一個標籤按鈕。

我曾嘗試下面的腳本硒

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 - 「//跨度[包含(文本(), '梅奧雞')] /祖先:: DIV [4] //一個」。你能不能給德網站網址 –

+0

你不能使用數據p鍵?像:String xpath =「// * [@ data-pkey ='.....']」; WebElement選擇= driver.findElement(By.xpath(xpath的)); – Sirim

+0

@santhoshkumar非常感謝!它現在有效。你能否以更好的方式與我分享任何鏈接以瞭解祖先? – Sugan

回答

1

我們需要得到共同父chicked以及可點擊「A」標記(祖先)元素,那麼我們可以導航到標籤'a'。理想情況下,xpath應該在下面工作。

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

注:這裏我已經使用的div [4],因爲第四母體是關於「梅奧雞」和標籤「A」的共同祖先。

有關不同的XPath軸更多細節請參考這個 - >https://www.w3schools.com/xml/xpath_axes.asp

希望這有助於你。謝謝。

0

你可以通過使用XPath位置,按F12鍵進行開發工具點擊「選擇要素按鈕」,點擊您感興趣的網頁上,在你的照片,你會看到一行或多行高亮元素,右鍵單擊行 - >複製 - >複製xpath。您將有類似下面的一行:

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

中的XPath位置將是:

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

您可以使用,當你有一個共享名稱或ID等多重元素。

,你將有:

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

PS:我用谷歌瀏覽器

相關問題