51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1655|回复: 1
打印 上一主题 下一主题

Java+Selenium3自动化入门5---如何操作Alert弹框和div盒子模拟的弹框

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-11 14:01:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
说到这里我们首先要先说下Alert是如何来的,一般是用来确认某些操作、输入简单的text或用户名、密码等,根据浏览器的不同,弹出框的样式也不一样,在firebug中是无法获取到该框的元素的,也就是说alert是不属于网页DOM树的。直接看代码!
  1. <html>
  2. <head lang="en">
  3.     <meta charset="UTF-8">
  4.     <title>帅气的老王</title>

  5.             <script language="JavaScript">
  6.               alert("哈哈,我又变帅了")
  7.              </script>
  8.     <script type="text/javascript">
  9.         function getInnerHTML(){
  10.             alert( document.getElementById("tr1").innerHTML);
  11.         }
  12.     </script>


  13.     </head>
  14.     <body>
  15.         <!--
  16.             <script src = "test.js"></script>
  17.       -->
  18.             <input type="button" value="按钮" onclick="alert('hello')"/>
  19.             <table border="1">
  20.                 <tr id="tr1">
  21.                     <th>Firstname</th>
  22.                     <th>Lastname</th>
  23.                 </tr>
  24.                 <tr id="tr2">
  25.                     <td>Peter</td>
  26.                     <td>Griffin</td>
  27.                 </tr>
  28.             </table>
  29.             <br />
  30.             <input type="button" onclick="getInnerHTML()"
  31.                    value="Alert innerHTML of table row" />

  32.     </body>
  33. </html>
复制代码

上面的代码大家可以看到在打开的时候,最先弹出的是这样的一个弹框,这就是典型的alert弹窗,当我们不点击确定的时候,这个页面是不会加载下一步的,所以我们会看到页面并没有加载完成,左上角的也是一直显示在加载,右下角会一直显示:正在传输来自localhost的数据。



对于Alert,selenium提供了专门的方法
  1.    /*
  2.          * .accept() 点击alert弹窗上的确定按钮
  3.          * .dismiss() 点击alert弹窗上的取消按钮
  4.          * .getText() 获取alert上的文字信息
  5.          * .sendKeys() 在弹窗上输入文字等信息
  6.          */
复制代码

下面我们就看看用代码如何去操作alert弹窗的
  1. package com.Lion.D1;

  2. import org.openqa.selenium.WebDriver;
  3. import org.openqa.selenium.firefox.FirefoxDriver;

  4. public class AlertAccept {

  5.         public static void main(String[] args) throws Exception {   
  6.       
  7.                 WebDriver driver = new FirefoxDriver();        
  8.                 driver.manage().window().maximize();
  9.          
  10.                 String PhotoUrl = "http://localhost:63342/untitled3/src/lions.html";
  11.                 driver.get(PhotoUrl);
  12.                
  13.                 Thread.sleep(2000);  
  14.         
  15.                 //  swithTo()切换到alert并.getText()获取alert的文本内容
  16.                 System.out.println(driver.switchTo().alert().getText());
  17.                 //处理alert
  18.                 driver.switchTo().alert().accept();
  19.                 System.out.println("弹窗已关闭");
  20.                
  21.                
  22.         }
  23. }
复制代码

控制台输出结果:

  1. 哈哈,我又变帅了
  2. 弹窗已关闭
复制代码

第二个就是div盒子模拟的弹框,比如说百度的登录页面


对于这种弹窗,用alert是解决不了的,因为它是一个div盒子,可以看成是一个新的窗口。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-26 21:57 , Processed in 0.068687 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表