selenium(webdriver)学习笔记6--Alert/Confirm/Prompt的处理(Java版)

来源:互联网 发布:python 符号错误 编辑:程序博客网 时间:2024/05/20 16:33

WebDriver中处理原生JS的 alert confirm 以及prompt是很方便的(虽然现在原生JS的实现方式用的很少了)。
具体思路是使用driver.switchTo.alert()方法,定位到当前的 alert/confirm/prompt(这里注意当前页面只能同时含有一个控件,如果多了会报错的,所以这就需要一一处理了),然后在调用Alert 的方法进行操作,Alert提供了以下几个方法:

  1. getText : 返回alert/confirm/prompt中的文字内容
  2. accept : 点击确认按钮
  3. dismiss : 点击取消按钮如果有取消按钮的话
  4. sendKeys : 向prompt中输入文字
    //这个方法在chromedriver中不起作用,IE11的话也有点问题,现在很少用JS,所以就没去研究,以后用到了再研究吧

html文件

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>dialogs:alert,confirm,prompt</title></head><body> <input id = "alert" value = "alert" type = "button" onclick = "alert('欢迎!请按确认继续!');"/>   <input id = "confirm" value = "confirm" type = "button" onclick = "confirm('确定吗?');"/>   <input id = "prompt" value = "prompt" type = "button" onclick = "var name = prompt('请输入你的名字:',''); document.write(name) "/>  </body></html>

selenium代码

        WebDriver driver = new FirefoxDriver();        driver.get("file:///D:/workSpaceIPaaS/selenium.web/src/main/java/webdrivers/dialogs.html");        // 点击弹出alert        driver.findElement(By.id("alert")).click();        Thread.sleep(3000);        //捕获alert        Alert alert= driver.switchTo().alert();        System.out.println("alert text: "+alert.getText());        //点击取消按钮|关闭        alert.dismiss();        Thread.sleep(3000);        //点击弹出confirm         driver.findElement(By.id("confirm")).click();        Thread.sleep(3000);        //捕获confirm        Alert confirm=driver.switchTo().alert();        System.out.println("confirm text: "+alert.getText());        //点击确认按钮        confirm.accept();        Thread.sleep(3000);        //点击弹出prompt        driver.findElement(By.id("prompt")).click();        Thread.sleep(3000);        //捕获prompt        Alert prompt=driver.switchTo().alert();        System.out.println("promp text: "+prompt.getText());        Thread.sleep(3000);        prompt.sendKeys("");        prompt.sendKeys("java");        Thread.sleep(3000);        prompt.accept();        driver.close();        driver.quit();  

原博客:http://my.oschina.net/coderinfo/blog/200515

0 0
原创粉丝点击