selenium 警告框處理 (彈窗處理)


在web應用中常常會遇見很多用JavaScript編寫的alert 、confirm 以及prompt 彈窗,這是就需要driver.switchTo().alert()來選取(定位)警告彈窗。再對彈窗進行關閉,輸入信息等方法進行操作。等操作。

在彈窗之前,建議使用線程等待Thread.sleep(5000)來設置等待時間,避免因網絡問題,彈窗還未彈出就操作彈窗而發生的異常。

getText():返回alert/confirm/prompt 中的文字信息。

accept(): 接受現有警告框。 點擊【確認】

dismiss():解散現有警告框。點擊【取消】
sendKeys(keysToSend):發送文本至警告框。
keysToSend:將文本發送至警告框。

 

package test;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.interactions.Actions;

public class Alert {
    /**
     * accept() 接收警告框 alert() 獲得警告框
     * 
     * @param args
     */
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe");
        ChromeOptions Options = new ChromeOptions();
        Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data");
        WebDriver driver = new ChromeDriver(Options);
        driver.get("https://www.baidu.com/");
        // 打開百度網頁
        Actions action = new Actions(driver);
        action.clickAndHold(driver.findElement(By.linkText("設置"))).perform();
        // 鼠標懸停在百度網頁設置超鏈接處。
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        driver.findElement(By.linkText("搜索設置")).click();
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        driver.findElement(By.linkText("保存設置")).click();
        System.out.println(driver.switchTo().alert().getText());

        driver.switchTo().alert().accept();
        // 接受。相當於點擊彈窗中的【確定】按鈕。
        driver.close();
        driver.quit();
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM