亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Firefox 瀏覽器中打開新選項卡并嘗試向下滾動頁面并單擊鏈接失敗

在 Firefox 瀏覽器中打開新選項卡并嘗試向下滾動頁面并單擊鏈接失敗

DIEA 2023-06-28 15:59:52
我有這個功能,我試圖向下滾動頁面并單擊鏈接。我已將代碼放入 for 循環中,因為我想打開多個選項卡。我試圖單擊的鏈接不在窗口視圖中,它們位于所有網頁通用的頁腳中。我的方法應該向下滾動,直到要單擊的鏈接可見,然后按住 Control 鍵并單擊并打開一個新選項卡。該方法在 Chrome 和 Internet Explorer 瀏覽器中運行良好,但在 Firefox 中失敗,提示要單擊的鏈接不存在。我認為盡管我放置了向下滾動的代碼,但它并沒有向下滾動。請幫忙。public static void checkHrefsWithBrowserUrls(List<WebElement> links) { String parentTab = null; String clickOnLink = Keys.chord(Keys.CONTROL, Keys.ENTER); log.debug("Checking that the links open the correct url"); for (WebElement link : links) {     ((JavascriptExecutor)driver)        .executeScript("arguments[0].scrollIntoView(true);", link);     String href = link.getAttribute("href");     link.sendKeys(clickOnLink);     WaitUtilities.sleep(1L);     Iterator<String> handleIterator = driver.getWindowHandles().iterator();     parentTab = handleIterator.next();     if(handleIterator.hasNext()) {         driver.switchTo().window(handleIterator.next());         WaitUtilities.waitForUrlToBe(url());         if(!href.equals(url())) {             log.error("Link(s) opening wrong URL(s): " + url());         }         driver.close();         driver.switchTo().window(parentTab);     } } driver.switchTo().window(parentTab);}
查看完整描述

1 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

這是處理狀態元素問題的偽代碼。


public static void checkHrefsWithBrowserUrls(String xpath) 

{

     String parentTab = null;

     String clickOnLink = Keys.chord(Keys.CONTROL, Keys.ENTER);


     log.debug("Checking that the links open the correct url");

     int linksCount = driver.findElements(By.xpath(xpath)).size();

     for (int linkCounter=1; linkCounter=linksCount, linkCounter++) {

         link = driver.findElements(By.xpath(xpath)).get(linkCounter)

         ((JavascriptExecutor)driver)

            .executeScript("arguments[0].scrollIntoView(true);", link);

         String href = link.getAttribute("href");

         link.sendKeys(clickOnLink);

         WaitUtilities.sleep(1L);

         Iterator<String> handleIterator = driver.getWindowHandles().iterator();


         parentTab = handleIterator.next();


         if(handleIterator.hasNext()) {

             driver.switchTo().window(handleIterator.next());

             WaitUtilities.waitForUrlToBe(url());

             if(!href.equals(url())) {

                 log.error("Link(s) opening wrong URL(s): " + url());

          }

          driver.close();

     driver.switchTo().window(parentTab);

    }

   }

   driver.switchTo().window(parentTab);

}


查看完整回答
反對 回復 2023-06-28
  • 1 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號