簡體   English   中英

Selenium Webdriver:如何單擊這些鏈接?

[英]Selenium webdriver: How can I click these links?

<a onclick="requestReportGeneration('857f23e1baa767622a91f970963d8918', 'reportDiv31','CSV')" href="javascript:void[0];">CSV</a>
<a onclick="requestReportGeneration('64107e36323e5877c986edc98a17b6e8', 'reportDiv32','CSV')" href="javascript:void[0];">CSV</a>
<a onclick="requestReportGeneration('2cad4d4e5c8855c47a88b6ddf8345735', 'reportDiv33','CSV')" href="javascript:void[0];">CSV</a>

我在頁面上有這三個鏈接,我想依次單擊每個鏈接。 我將頁面上的所有鏈接讀入WebElements列表,然后如果href包含javascript:void [0],則依次瀏覽每個鏈接:然后嘗試單擊它:

for (int i = 0; i < allLinks.size(); i++) {
    String reportLink = allLinks.get(i).getAttribute("href");

    if (reportLink.contains("javascript:void[0];")) 
    {
        allLinks.get(i).click();
        /// Do some more stuff
    }

問題是我不斷收到錯誤消息,指出該元素不可見。 我也嘗試過只是加載頁面,而不是讓所有鏈接都在做

driver.findElement(By.xpath("//a[contains(@href,\"javascript:void[0]\")]")).click();

但這也只會給元素帶來不可見的錯誤。 誰能告訴我為什么這不起作用?

嘗試在while循環之前放置一個斷點,調試腳本,然后進入腳本並使用Eclipse的Display選項卡查詢鏈接的內容。 嘗試評估示例語句,例如:

allLinks.size();
allLinks.get(i).isDisplayed();
allLinks.get(i).isEnabled();

鏈接(或網絡驅動程序查看鏈接的方式)肯定有些奇怪,但是像這樣的調試將使您知道鏈接的含義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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