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

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. 每日陌生php函数

    1,date_default_timezone_set(PRC) 设定一个脚本中所有日期函数的默认时区,PRC设置中国时区 2,microtime(true) 返回当前unix微秒时间戳 139868 ...

  2. [访问系统] C#计算机信息类ComputerInfo (转载)

    下载整个包,只下载现有类是不起作用的 http://www.sufeinet.com/thread-303-1-1.html 点击此处下载 using System; using System.Man ...

  3. C#当中的多线程_线程同步

    第2章 线程同步 原来以为线程同步就是lock,monitor等呢,看了第二章真是大开眼界啊! 第一章中我们遇到了一个叫做竞争条件的问题.引起的原因是没有进行正确的线程同步.当一个线程在执行操作时候, ...

  4. Object-C添加方法

    给实例变量添加getter方法: #import <Cocoa/Cocoa.h> @interface Photo:NSObject { NSString *caption; NSStri ...

  5. codeblocks调试(转载)

    单步调试  1)设置断点  在需要设置断点处,右击左边行号,Add breakpoint,则出现一个红色的点(可以同时设置多个,前提是不能在debug的运行模式下). 2)调试运行 Debug-> ...

  6. Cloudera Impala 之 ORDER BY without LIMIT currently not supported

    ERROR: NotImplementedException: ORDER BY without LIMIT currently not supported   impala中order by 需要l ...

  7. InstallShield:自己备份

    LIST listData;//声明listData listData = ListCreate(STRINGLIST);//创建一个空的实际字符串或数字列表. //参数都是在上个界面中赋值,然后在下 ...

  8. cx_Oracle使用方法二

    下载地址: https://pypi.python.org/pypi/cx_Oracle/5.2.1, 下载的时候注意数据库版本和操作系统环境. 技术手册: http://cx-oracle.read ...

  9. secureCRT使用小贴士

    (一)使用WIN键盘 在securecrt界面:工具→键映射编辑器,在弹出的键盘中点击“home”,会弹出一个窗口,在“发送字符串”中输入:\033[1~ 另存为securecrt安装根目录下的Key ...

  10. ASP.NET MVC轻教程 Step By Step 13——页面布局

    一般在一个网站中页面会使用相同的结构和元素,如果每个页面都要重复添加这些元素,不仅繁琐更会给我们后期维护带来大麻烦.所以我们采用网页模板之类的技术,将固定不变的元素放入模板,同时留下一些占位符供页面各 ...