昨天使用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;

}

最新文章

  1. MVC中的Html.Partial和Html.RenderPartial
  2. 根据键盘调整textField(多个)位置使其不会被键盘挡住
  3. PHP函数 rtrim() 的一个怪异现象
  4. 将XmlDocument转换成XDocument
  5. Java API —— Map接口
  6. Android使用HttpClient方法和易错问题
  7. Arduino 各种模块篇 光敏感应模块 light sensor
  8. POJ 1062 昂贵的聘礼详解最短路变形
  9. 悬挂else引发的问题
  10. htm语言的语法基础及规则
  11. python 抓取金融数据,pandas进行数据分析并可视化系列 (一)
  12. 常用SQL语句集合
  13. jdk源码阅读笔记-HashSet
  14. 又到毕业季,尚学堂喊你免费领取100个Java毕设项目(含源码视频),限时一周哦!
  15. 【Spark调优】提交job资源参数调优
  16. 二叉树的简单操作(Binary Tree)
  17. JavsScript学习---快速排序
  18. IntelliJ IDEA小问题通过操作软件解决
  19. C++与C语言在结构体上的区别
  20. Web下文件上传下载的路径问题

热门文章

  1. 02 Django web开发-html简介
  2. opencv-视频基本操作
  3. vim 常用配置项
  4. Liunx php函数 smtp 发送邮件
  5. UESTC 1437
  6. java拦截器的使用
  7. python面向对象, 单例模式
  8. 夜神模拟器连不上adb的解决办法
  9. mysql中添加中文存储和显示功能
  10. (转)python 集合,列表,元组,字符串,文件等操作总结