说到这里我们首先要先说下Alert是如何来的,一般是用来确认某些操作、输入简单的text或用户名、密码等,根据浏览器的不同,弹出框的样式也不一样,在firebug中是无法获取到该框的元素的,也就是说alert是不属于网页DOM树的。直接看代码!
- <html>
- <head lang="en">
- <meta charset="UTF-8">
- <title>帅气的老王</title>
-
- <script language="JavaScript">
- alert("哈哈,我又变帅了")
- </script>
- <script type="text/javascript">
- function getInnerHTML(){
- alert( document.getElementById("tr1").innerHTML);
- }
- </script>
-
-
- </head>
- <body>
- <!--
- <script src = "test.js"></script>
- -->
- <input type="button" value="按钮" onclick="alert('hello')"/>
- <table border="1">
- <tr id="tr1">
- <th>Firstname</th>
- <th>Lastname</th>
- </tr>
- <tr id="tr2">
- <td>Peter</td>
- <td>Griffin</td>
- </tr>
- </table>
- <br />
- <input type="button" onclick="getInnerHTML()"
- value="Alert innerHTML of table row" />
-
- </body>
- </html>
复制代码
上面的代码大家可以看到在打开的时候,最先弹出的是这样的一个弹框,这就是典型的alert弹窗,当我们不点击确定的时候,这个页面是不会加载下一步的,所以我们会看到页面并没有加载完成,左上角的也是一直显示在加载,右下角会一直显示:正在传输来自localhost的数据。
对于Alert,selenium提供了专门的方法
- /*
- * .accept() 点击alert弹窗上的确定按钮
- * .dismiss() 点击alert弹窗上的取消按钮
- * .getText() 获取alert上的文字信息
- * .sendKeys() 在弹窗上输入文字等信息
- */
复制代码
下面我们就看看用代码如何去操作alert弹窗的
- package com.Lion.D1;
-
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.firefox.FirefoxDriver;
-
- public class AlertAccept {
-
- public static void main(String[] args) throws Exception {
-
- WebDriver driver = new FirefoxDriver();
- driver.manage().window().maximize();
-
- String PhotoUrl = "http://localhost:63342/untitled3/src/lions.html";
- driver.get(PhotoUrl);
-
- Thread.sleep(2000);
-
- // swithTo()切换到alert并.getText()获取alert的文本内容
- System.out.println(driver.switchTo().alert().getText());
- //处理alert
- driver.switchTo().alert().accept();
- System.out.println("弹窗已关闭");
-
-
- }
- }
复制代码
控制台输出结果:
第二个就是div盒子模拟的弹框,比如说百度的登录页面
对于这种弹窗,用alert是解决不了的,因为它是一个div盒子,可以看成是一个新的窗口。
|