[英]How to click link with same names in selenium webdriver?
我正在使用Java的Selenium Web驅動程序。 我想單擊名稱為Downloads的鏈接。 實際上,有四個具有相同名稱的鏈接。 當我檢查元素時
<a href="http://selenium-release.storage.googleapis.com/2.41/selenium-java-2.41.0.zip"></a>
我正在嘗試單擊以下鏈接
driver.findElement(By.xpath("//a[@ href='//http://selenium-release.storage.googleapis.com/2.41/selenium-java-2.41.0.zip']")).click();
在以下鏈接中,我嘗試單擊第一個下載鏈接。 硒下載
點擊不起作用。 有誰可以告訴我如何單擊此特定鏈接?
提前致謝。
您的xpath正確,除了兩件事:
更正此問題,它將起作用。
我也不建議使用這樣的xpath。 萬一href值更改,您的xpath將無法正常工作。
因此,為避免這種情況,您可以使用xpath:
//tbody//td[text()='Java']/following-sibling::td/a[text()='Download']
即使href值已更改(例如更改為2.42),也會單擊Java的下載鏈接。
理查德的答案是正確的,但此xpath更易於閱讀:
//td[(text()='Java')]/following-sibling::td/a[text() = 'Download']
此xpath將找到Java的Download鏈接:
//td[(text()='Java')]/following-sibling::td[3]/a
在“ a”標簽之間留出小間距,
<a href="http://selenium-release.storage.googleapis.com/2.41/selenium-java-2.41.0.zip"> </a>
從http單詞前取出//(雙斜線)。
driver.findElement(By.xpath("//a[@href='http://selenium-release.storage.googleapis.com/2.41/selenium-java-2.41.0.zip']")).click();
如果我們使用
//td[(text()='Java')]/following-sibling::td/a[text() = 'Download']
此代碼僅反映webdrive(testing)。 因此,我對“ Fani Khokhar”代碼進行了少量修改。
$.ajax({
type: 'get',
url: 'http://docs.seleniumhq.org/download/',
success: function(data) {
var html = $.parseHTML(data);
var main_content = $(html).find('#mainContent table:eq(0)');
var row_count = main_content.find("tbody").find("tr");
for (var i = 0; i < row_count.length; i++) {
var MyIndexValue = $(main_content.find("tbody").find("tr:eq(" + i + " )")).find("td:eq(0)").html();
if (MyIndexValue == "Java") {
var href_value = main_content.find("tbody").find("tr:eq(0)").find("td:eq(3)").html();
var current_version_link = $(href_value).attr('href');
$("#here_getback_latest_version").html("<a href=" + current_version_link + "/> </a>");
} else {
console.log(MyIndexValue + " not required.");
}
}
},
error: function() {
alert("error");
}
});
遵從,
<div id="here_getback_latest_version"></div>
如果我們對源代碼進行了修改,即使最新版本發生了更改,它也會自動下載。
好的,我們可以使用xpath識別元素的方法有很多。
除了其他建議之外,我僅想在下面提及標識特定元素的方法。 如果您知道元素在網頁中出現的順序,它將很方便。
(//a[text()='Download'])[2]
您還可以參考以下鏈接,以供參考。
http://www.quackit.com/xml/tutorial/xpath_string_functions.cfm http://news.rapgenius.com/Mat-brown-xpath-is-actually-pretty-useful-once-it-stops-being-令人困惑-annotated#筆記2363798
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.