昨天使用selenium做自动化测试,发现部分页面会弹出alert对话框,找了写资料,大概的意思就是要给弹出的对话框做出相应,不然,后续的处理会失败。

_driver.SwitchTo().Alert() 这样就可以把当前的handle转到到弹出框,可以进行下一步的处理,如accept,dimsiss ,text等属性,就可以弹出框做处理了。

把代码修改,测试了一下,代码可以执行通过了,欢天喜地的回家了,今天来了之后发现,把测试用例整体跑一下,发现很多testcase 发现出错了。出错了开始找问题,

根据提示no alert open 。既然是没有open,在accept,肯定出错啊,就先加个对象不等null的验证。面向对象第一要务是判断对象是否为空啊。面向对象,没对象没办啊。

吃过饭,又测试了一下,还需要加个扩展放方法,判断是否弹出框出现,有弹出框出现,继续处理。没有的话,就直接跳过。

/// <summary>
/// 判断是否弹框出现
/// </summary>
/// <param name="driver"></param>
/// <returns></returns>
public static bool IsAlertPresent(this IWebDriver driver)
{
try
{
driver.SwitchTo().Alert();
return true;
} // try
catch (NoAlertPresentException Ex)
{
return false;
} // catch
}

使用  if(_driver.IsAlertPresent){

driver.SwitchTo().Alert().Accept;

}

selenium中Alter等弹出对话框的处理的更多相关文章

  1. python+selenium之处理alert弹出对话框

    注:本篇文章转载 http://www.cnblogs.com/mengyu/p/6952774.html 在完成某些操作时会弹出对话框来提示,主要分为"警告消息框"," ...

  2. android studio中退出时弹出对话框

    在app中总是不小心点击了退出怎么办?当然是加个弹出的提示框了,本人新手,就加在主界面上了 @Override public boolean onKeyDown(int keyCode, KeyEve ...

  3. JSP中三种弹出对话框的用法《转》

    对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的 ...

  4. 【JSP】三种弹出对话框的用法实例

    对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的 ...

  5. 万水千山ABP - 弹出对话框禁用回车

    模态对话框中禁用回车 ABP Zero 中,使用弹出对话框进行实体编辑,回车时会自动保存并关闭对话框.那么如何禁用这个回车功能 ? 查看实体列表视图 index.cshtml 所对应加载的脚本文件 i ...

  6. selenium移动div里面的滚动条,操作弹出对话框

    还是使用js来移动 首先要定位到这个元素 倾向于使用js来定位元素,输入下面的脚本,按下回车键,即可在调试页面看到对应的div块$("div.table-responsive") ...

  7. java selenium (十一) 操作弹出对话框

    Web 开发人员通常需要利用JavaScript弹出对话框来给用户一些信息提示, 包括以下几种类型 阅读目录 对话框类型 1.  警告框: 用于提示用户相关信息的验证结果, 错误或警告等 2. 提示框 ...

  8. Selenium(八):其他操作元素的方法、冻结界面、弹出对话框、开发技巧

    1. 其他操作元素的方法 之前我们对web元素做的操作主要是:选择元素,然后点击元素或者输入字符串. 还有没有其他的操作了呢?有. 比如:比如鼠标右键点击.双击.移动鼠标到某个元素.鼠标拖拽等. 这些 ...

  9. JavaScript中的三种弹出对话框

    学习过js的小伙伴会发现,我们在一些实例中用到了alert()方法.prompt()方法.prompt()方法,他们都是在屏幕上弹出一个对话框,并且在上面显示括号内的内容,使用这种方法使得页面的交互性 ...

随机推荐

  1. HDU6312 Game (多校第二场1004) 简单博弈

    Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. Alpha冲刺(6/10)——2019.4.28

    作业描述 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 项目Alpha冲刺(团队) 团队目标 切实可行的计算机协会维修预约平台 开发工具 Eclipse 团队信息 队员学号 ...

  3. springboot整合redis存放session

    y进入maven依赖: <!--spring boot 与redis应用基本环境配置 --> <dependency> <groupId>org.springfra ...

  4. netty结合websocket使用

    首先需要在后台建立netty服务器启动类; package com.cxy; import io.netty.bootstrap.ServerBootstrap; import io.netty.ch ...

  5. Linq To DataTalbe 列X不属于表

    项目中遇到一个问题,利用linq to datatable查询得到一个query,截止到红色代码部分时,一切都正常,只要一运行query.where 就会报异常:列“SingDate”不属于列表,查看 ...

  6. Educational Codeforces Round 7 A

    Description Consider the infinite sequence of integers: 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5. ...

  7. hdu-2036求任意多边形面积

    改革春风吹满地 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  8. js 数字处理Number()

    //js将数字转换保留2位小数 function toDecimal(x) { var val = Number(x) if (!isNaN(parseFloat(val))) { //toFixed ...

  9. Nmap工具使用

    Nmap是一款网络扫描和主机检测的非常有用的工具. Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它可以适用于winodws,linux,mac等操作系统.Nmap ...

  10. from表单,图片预览,和表单提交

    <form> <input id="file" class="topsub-file" type="file" name= ...