簡體   English   中英

如何在Selenium Webdriver中單擊具有相同名稱的鏈接?

[英]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正確,除了兩件事:

  1. @和href之間的空格;
  2. http前2個斜杠。

更正此問題,它將起作用。

我也不建議使用這樣的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM