Selenium兼容性问题注意

不知道是selenium兼容做的不好,还是浏览器自身运行速度和解析的关系,每次项目在chrome上跑得时候没有问题,可以到chrome和safari上就有很多问题出现。下面一一总结出现的问题以及解决方案。

1、当页面跳转后,防止jQuery ajax等事件未加载出需要操作的元素时,可以使用下面代码控制元素出现后再执行操作。

[html] view plain copy

 print?

  1. public static void waitForPage(WebDriverWait wait, By by) {  
  2.         wait.until(ExpectedConditions.presenceOfElementLocated(by));  
  3.     }  

2、当页面在chrome上跳转时,验证跳转的url是否和excepted的url一致时,会出现运行过快url判断还停留在上一个url的问题。

[html] view plain copy

 print?

  1. /**  
  2.      * set i=50 (one is 100 millseconds) represent 5 seconds  
  3.      * @param url expected url  
  4.      */  
  5.     public static void pageload(String url){  
  6.         WebDriver driver = new IndexPage().getDriver();  
  7.         int i=0;  
  8.         while(i < 50) {  
  9.             i++;  
  10.             if(driver.getCurrentUrl().equals(url)) {  
  11.                 break;  
  12.             } else {  
  13.                 try {  
  14.                     Thread.sleep(100);  
  15.                 } catch (InterruptedException e) {  
  16.                     e.printStackTrace();  
  17.                 }  
  18.             }  
  19.         }  
  20.     }  

3、当在chrome上运行弹框时,会出现如下错误:NoSuchAlertError: no alert open,解决方案可能有的人在Alert之前sleep一秒,但是我觉得这样做是不正确的,正确的做法如下:

[html] view plain copy

 print?

  1. public static void waitForAlert(WebDriverWait wait) {  
  2.         wait.until(ExpectedConditions.alertIsPresent());  
  3.     }  
时间: 2024-12-21 14:27:27

Selenium兼容性问题注意的相关文章

基于Selenium WebDriver实现多语言环境下自动化截图

TVT 的概念和 TVT 自动化的必要性 概念 翻译验证测试 (Translation Verification Testing,TVT) 是 IBM GSSC 部门为 IBM 的各种产品做本地化 (Localization) 的一个测试环节.众所周知,我们开发出一款产品,需要让全 球各地的用户都能够无障碍的使用,就必须精准的将产品 UI 和相关文档翻译成各种语言,这样不同国家和地区的用户才能 够顺畅使用.TVT 的过程就是一个产品翻译验证测试的过程. 必要性 从字面上看,TVT 是一个比较简单

PHPUnit 3.0集成Selenium组件和代码分析

PHPUnit 3.0新特性 PHPUnit 3.0引入了一系列的新特性以便用户更加方便地用它进行调试,并且使得3版本比以前任何版本的功能都更加丰富. 伪对象调试 你如何才能测试一个对象里面的方法被另外一个方法调用的时候运行是正确的呢?你如何可以忽略外部资源而单独进行调试呢?伪对象和局部测试可以为你解决这些问题.部分提供答复对这些和其它问题. 集成了Selenium组件 PHPUnit 3 集成了Selenium RC组件来提供更好的调试 (更高层次的平台测试来代替系统单一模块的独立测试)和浏览

[Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium

        最近准备深入学习Python相关的爬虫知识了,如果说在使用Python爬取相对正规的网页使用"urllib2 + BeautifulSoup + 正则表达式"就能搞定的话:那么动态生成的信息页面,如Ajax.JavaScript等就需要通过"Phantomjs + CasperJS + Selenium"来实现了.所以先从安装和功能介绍入门,后面在介绍一些Python相关的爬虫应用. 一. 介绍        PhantomJS        Pha

Selenium的基本使用

一.Selenium的Java编程基本语法 在Selenium的基本语法中首先是需要定位到页面元素的,Selenium通过找寻到界面元素然后触发相应的时间,通过页面元素变化判断是否执行了相应的操作. 可以通过页面元素的属性获取相应的页面元素. 1.通过Identifier(id)定位元素 所给出的定位的HTML元素必须要有identifier,如果没有就会报告未找到相应元素的错误.通过ID来标识可以确定唯一性. WebElement ele = By.id("idName"); 只有当

《Selenium自动化测试指南》—第1章1.1节自动化测试基础

1.1 自动化测试基础 Selenium自动化测试指南1.1.1 软件测试概述 即使是经验非常丰富的程序员,在编写代码时也很容易出现错误,这些错误也许是由于需求不明确,也许是由于设计问题,也许是编码中出现了失误等.但无论是怎样的错误,若不及时处理,都会降低软件的可靠性,严重时甚至会导致整个软件的失败. 为了排除这些错误,人们引入了软件测试的概念.通俗地说,软件测试就是为了发现程序中的错误而分析或执行程序的过程. 据研究机构统计分析表明,国外软件开发机构40%的工作量都花在软件测试上,软件测试费用

Selenium webdriver的各种driver

selenium官方加上第三方宣布支持的驱动有很多种:除了PC端的浏览器之外,还支持iphone.android的driver:大概记录一下selenium支持的各种driver的用途与说明. selenium可支持的PC浏览器驱动包括: FF driver[包含在各自语言的客户端里] safari driver[包含在selenium server中] ie driver chrome driver [第三方] opera driver[第三方] selenium可支持的伪浏览器驱动: Pha

深入理解基于Selenium的二次开发

对于做web端自动化测试的人来说,可能接触selenium比QTP还要多,但是我们在做基于selenium的二次开发的时候,经常会说到二次开发是 为了易于维护,很多人可能不懂得维护的价值是什么,和到底要维护什么.今天专门写一篇关于二次开发的文章,希望能够帮到有需要做二次开发的人. 二次开发也就是我们常说的封装selenium,或者做框架.但是一个框架要包含丰富的类和方法.要有一套完整的体系来帮助我们进行封装.可以说框架的设 计思想就是整个框架的灵魂,如果设计思想很正确也就意味着这个框架成功了一半

利用Selenium WebDriver实现TVT的自动化截图工作

您通过此文,不仅能够了解到自动化在 TVT 多语言环境过程中的作用,而且可以在 Selenium WebDriver 做http://www.aliyun.com/zixun/aggregation/18863.html">自动化测试方面获得更多的启发,比如 WebDriver 对 Firefox 浏览器的操作等等. 翻译验证测试 (Translation Verification Testing,TVT) 是 IBM GSSC 部门为 IBM 的各种产品做本地化 (Localizatio

Selenium v2.0b3发布 Web应用程序测试工具

Selenium也是一个用于Web应用程序测试的工具.Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE,http://www.aliyun.com/zixun/aggregation/29851.html">Mozilla和Firefox等.这个工具的主要功能包括:测试与浏览器的兼容性--测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上.测试系统功能--创建衰退测试检验软件功能和用户需求. 支持自动录制动作,和自动生成.Net.Java