运行一个星期前升至更久前的脚本,,,出现如下错误提示

elementNotVisibleException was unhandled by user code。

经过询问大侠,说我的脚本不够健全,也就是稳定性的问题,需要增加一些判断等待,那需要封装一些等待方法

  public static void WaitUnit<T>(this IWebDriver webDriver, Func<IWebDriver, T> func, int seconds = )
{
var wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(seconds));
wait.Until(func);
} /// <summary>
/// 强制让webdriver等待,直到给定的元素(by)存在于DOM之中
/// </summary>
public static void WaitElementExist(this IWebDriver webDriver, By by, int seconds = )
{
var wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(seconds));
wait.Until(ExpectedConditions.ElementExists(by));
} /// <summary>
/// 强制让webdriver等待,直到给定的元素(by)的CSS属性visiblity的值为visible
/// </summary>
public static void WaitElementVisible(this IWebDriver webDriver, By by, int seconds = )
{
var wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(seconds));
wait.Until(ExpectedConditions.ElementIsVisible(by));
} /// <summary>
/// 强制让webdriver等待,直到当前的浏览器title包含指定的字符串
/// </summary>
public static void WaitTitleContains(this IWebDriver webDriver, string title, int seconds = )
{
var wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(seconds));
wait.Until(ExpectedConditions.TitleContains(title));
} /// <summary>
/// 强制让webdriver等待,直到当前的浏览器title与给定读的title一致
/// </summary>
public static void WaitTitleIs(this IWebDriver webDriver, string title, int seconds = )
{
var wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(seconds));
wait.Until(ExpectedConditions.TitleIs(title));
} /// <summary>
/// Executes JavaScript in the context of the currently selected frame or window.
/// </summary>
/// <param name="webDriver">IWebDriver实例</param>
/// <param name="jsCode">js代码(最好的web里面先执行一次,确保正确性)</param>
public static void ExecJavascript(this IWebDriver webDriver, string jsCode)
{
((IJavaScriptExecutor)webDriver).ExecuteScript(jsCode);
}

Selenium 脚本稳定性问题的更多相关文章

  1. Selenium执行测试脚本稳定性的一些经验分享交流

    Selenium执行测试脚本稳定性的一些经验分享交流 公司的自动化WEB测试框架IATA已上线运行了一段时间,期间发现一些脚本稳定性的问题,与大家分享一下. CASE执行游览器:ie firefox ...

  2. Jenkins调度Selenium脚本不能打开浏览器解决办法

    前提:在Myeclipse里面可以启动起来浏览器,在Jenkins中不能启动浏览器 原因:以程序的方式安装了jenkins,jenkins就成了windows的一个服务了,默认是设置为自动启动的如下图 ...

  3. Jenkins怎么安装?Jenkins控制台输出乱码怎么处理?Jenkins执行selenium脚本时浏览器不显示怎么处理?

    今天我们来看一看Jenkins的安装. 首先我们看一下Jenkins是什么,能够干什么.Jenkins呢是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开 ...

  4. RobotFramework+Selenium如何提高脚本稳定性

     通过RF来跑selenium的脚本,正常运行一遍都没有问题,但如果要多次运行,提高脚本的稳定性,那么应该如何做呢?  当然有时候最简单最简单的方法就是直接通过sleep来等待,虽然简单粗暴,但会带来 ...

  5. Pyinstaller打包Selenium脚本为exe文件执行问题

    由于同事辞职,许多运维工具的维护工作就交到我这里处理了,运维居然没人会Python脚本! 用Selenium编写的一个爬虫脚本cctv.py,需要给不懂软件的人运行.为了不让他去搭建,安装各种包,库, ...

  6. linux + docker + selenium grid 实现分布式执行selenium脚本

    Selenium Grid 有两个概念 hub :主节点,你可以看作 "北京总公司的测试经理". node:分支节点,你可以看作 "北京总公司的测试小兵A" 和 ...

  7. jenkins调度selenium脚本不打开浏览器解决办法

    原文地址: http://blog.csdn.net/achang21/article/details/45096003 The web browser doesn't show while run ...

  8. 通过Headless模式执行selenium脚本

    我们在通过Selenium运行自动化测试时,必须要启动浏览器,浏览器的启动与关闭必然会影响执行效率,而且还会干扰你做其它事情(本机运行的话) Chrome Headless模式 Python Sele ...

  9. 怎么提高selenium脚本的自动化执行效率?

    1.使用配置更高的电脑,选择更快的网络环境:2.使用效率更高的语言,比如 java 比 python,这种方案可行性不高:3.能直接访问网址的,就不要一步一步点击:4.不要盲目增加 sleep,尽量使 ...

随机推荐

  1. Oracle RAC OCR 和 VotingDisk 的备份与恢复

    一:Voting DiskVoting Disk 这个文件主要用于记录节点成员状态,在出现脑裂时,决定那个Partion获得控制权,其他的Partion必须从集群中剔除.Voting disk使用的是 ...

  2. Struts2单文件上传

    第一步:首先写个上传文件的页面(简单的一个form表单) <html> <head> <meta http-equiv="Content-Type" ...

  3. Eclipse快捷键,前几个很实用

    F3 :查看实现 F4(或control + T) :继承树 control + F6 :切换文件 control + F7 :切换视图 control + F8 :切换模板 control + O ...

  4. /etc目录深入理解

    /etc This is the nerve center of your system, it contains all system related configuration files in ...

  5. 读懂IL代码(四)

    这一篇是IL系列的最后一篇的,主要是要说一下IL中的流程控制.我相信,经过前面三篇的介绍,看IL代码应该不是什么大问题了吧.好吧,闲话不多说了,就来简单的说一下吧. 还是跟前几篇一样,以例子来解释说明 ...

  6. CSS3实用方法小记 2016.03.16

    圆角边框: border-radius : 4px; box阴影: box-shadow : 5px 5px 3px #000 ; /* 参数分别为向右拓展距离,向下拓展距离,阴影宽度,颜色*/ 背景 ...

  7. Codevs 2549 自然数和分解

    2549 自然数和分解 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver 传送门 题目描述 Description 把自然数N分解为若干个自然数之和,输出方案数. 输 ...

  8. 手机定位原理 - GPS/GLONASS/北斗 + WIFI + 基站

    卫星定位系统 - GPS/GLONASS/北斗: 关于GPS.GLONASS.北斗.伽利略系统的科普请自行谷歌. GPS是使用最广泛的全球定位网络,几乎是所有智能手机的标配.进几年,俄罗斯的GLONA ...

  9. 关于安卓启动eclipse错误:找不到元素‘d:devices'的声明

    可以把C:\Documents and Settings\Administrator\.android\devices.xml这个文件删除, 再把sdk里面tools\lib下的这个文件拷贝到你删除的 ...

  10. Python 统计代码行

    正在学习 Python, 做了个统计代码行的功能, 参考了网上很多前辈的帖子,添加了感觉还是比较实用的功能, 只是windows下测试了,而且代码文件编码形式是 utf-8的. 如果使用其它编码形式的 ...