我正在使用带有java的selenium web驱动程序。我想点击名称下载的链接。 实际上有四个同名的链接。当我检查我得到的元素时
<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();
在以下链接中,我试图点击第一个下载链接。 Selenium Download
点击无效。请问有谁可以告诉我如何点击这个具体的链接?
提前致谢。
答案 0 :(得分:3)
你的xpath是正确的,除了两件事:
纠正这个问题,它会起作用。
另外我不建议使用这样的xpath。如果更改了href值,则xpath将无法正常工作。
为避免这种情况,您可以使用xpath,如:
//tbody//td[text()='Java']/following-sibling::td/a[text()='Download']
即使href值已更改(例如,更改为2.42),它也会单击Java的下载链接。
答案 1 :(得分:1)
理查德的答案是正确的,但这个xpath更容易阅读:
//td[(text()='Java')]/following-sibling::td/a[text() = 'Download']
答案 2 :(得分:0)
此xpath将找到Java的下载链接:
//td[(text()='Java')]/following-sibling::td[3]/a
答案 3 :(得分:0)
在&#39;之间留出一点空间。标签
<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(测试)。所以,我对Fani Khokhar&#39;代码。
$.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>
如果我们修改了源代码,即使在最新版本中发生了更改,它也会自动下载。
答案 4 :(得分:0)
好吧..我们可以通过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-confusing-annotated#note-2363798