测试工具Selenium 2.38.2 遇到 PhantomJS 1.9.2 时出现 Bug

这个Bug已经在这两天发布的Selenium 2.38.4版本中被修复了,如果使用的2.38.1、2.38.2等版本的Selenium,则依然会遇到。这个Bug,在确定原因之前,折磨了我一两天时间;所以还是记录一下。

描述:在python 2.7环境中,使用Selenium 2.38.2 和 PhantomJS 1.9.2 写一个简单的打开某个网页的脚本,就会遇到Bug,根本就不能打开网页。返回的错误信息为“httplib.BadStatusLine: ””或“socket.error: [Errno 54] Connection reset by peer”。 PS:我发现在Python 2.6环境中,同样的Selenium 2.38.2 和 PhantomJS 1.9.2 却一般不会遇到这个问题(这个问题没深究了)。

具体的描述和讨论,见Selenium项目主页上的这个issue: http://code.google.com/p/selenium/issues/detail?id=6690
具体Fix这个bug的代码在:https://github.com/SeleniumHQ/selenium/commit/a1df581908b7a0165dd232151647a23b5d6b4800

解决方案:(很简单 ^_^)

1. 回退Selenium版本到2.37.2;

 代码如下 复制代码
sudo pip uninstall selenium
sudo pip install selenium==2.37.2

2. 升级Selenium版本到2.38.4.

 代码如下 复制代码

sudo pip install -U selenium

可能遇到的报错信息如下:

 代码如下 复制代码
jay@jay-linux:~/workspace/python_test$ python try_phantomjs.py
Traceback (most recent call last):
  File "try_phantomjs.py", line 17, in <module>
    driver.get("http://www.ip.cn/125.95.26.81")
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 176, in get
    self.execute(Command.GET, {'url': url})
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 162, in execute
    response = self.command_executor.execute(driver_command, params)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/remote_connection.py", line 350, in execute
    return self._request(url, method=command_info[0], data=data)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/remote_connection.py", line 382, in _request
    resp = self._conn.getresponse()
  File "/usr/lib/python2.7/httplib.py", line 1030, in getresponse
    response.begin()
  File "/usr/lib/python2.7/httplib.py", line 407, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python2.7/httplib.py", line 371, in _read_status
    raise BadStatusLine(line)
httplib.BadStatusLine: ''

也偶尔是这样的报错信息:

 代码如下 复制代码
jay@Jay-Air:~/workspace/python_study/dp/qa/2013/12 $python try_phantomjs.py
Traceback (most recent call last):
  File "try_phantomjs.py", line 17, in <module>
    driver.get("http://dianping.com/")
  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 176, in get
    self.execute(Command.GET, {'url': url})
  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 162, in execute
    response = self.command_executor.execute(driver_command, params)
  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 355, in execute
    return self._request(url, method=command_info[0], data=data)
  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 384, in _request
    resp = self._conn.getresponse()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1045, in getresponse
    response.begin()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 409, in begin
    version, status, reason = self._read_status()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 365, in _read_status
    line = self.fp.readline(_MAXLINE + 1)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 476, in readline
    data = self._sock.recv(self._rbufsize)
socket.error: [Errno 54] Connection reset by peer
时间: 2024-09-27 11:06:07

测试工具Selenium 2.38.2 遇到 PhantomJS 1.9.2 时出现 Bug的相关文章

PowerShell调用Web测试工具Selenium实例_PowerShell

什么是Selenium Selenium是一款著名的web应用程序测试工具,它能通过在浏览器中模拟用户的动作来完成测试,其api支持java,c#,python,ruby,php,perl,javascript这些主流编程语言和脚本语言.Selenium还支持IE,火狐,和chrome等主流浏览器. PowerShell 如何直接调用Selenium PowerShell直接调用Selenium,其实类似PowerShell调用C#方法.以IE浏览器为例,至少需要具备两个文件: 1.IEDriv

如何使用Selenium测试工具对Ruby on Rails和Ajax应用程序进行功能测试

验收测试(也称功能测试)是用来测试手工任务的功能的,但是手工测试这些任务可能很花时间,并 且容易出现人为的错误.在本文中,作者为架构师.开发人员和测试人员展示了如何使用 Selenium 测试 工具来自动化验收测试.通过自动化测试,可以节省时间,并消除测试人员所犯的错误.文中还给出了一 个例子,以演示如何将 Selenium 应用到现实中使用 Ruby on Rails 和 Ajax 的项目上. Web 应 用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操

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

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

QA 应该更新的测试工具

作为一名QA,过去一年是我的软件质量知识体系和自动化测试知识体系收获最丰的一年,让我对于软件质量和自动化测试有了一个更高层次的认识.所以我写下了一些自己更新了的知识,以及在和其他公司的QA交谈之后发现的一些他们应该更新的知识.借此希望能对各位看官起到一些提示或者补充作用,当然我也希望各位与我进行联系,并共同探讨未来的QA到底应该具有什么样的能力和知识体系. Web应用程序视觉感知测试 视觉感知测试,对于很多QA,包括我在2013以前对于它的认知都是手动测试领域的一个成员.在这个Web系统爆炸的年

使用Flex编写的ActionScript正则表达式测试工具

为了在开发过程中,测试正则表达式更方便,用Flex编写了下面的正则表达 式测试工具,也大家分享,欢迎提出改进意见 在独立的窗口中查看:http://my.jhost.cn/iihe602_2/flex/sdk3/RegexTester.html 现在样例 比较少,今后将逐渐增加 1 <?xml version="1.0" encoding="utf-8"?> 2 <mx:Application xmlns:mx="http://www.a

.NET平台下Web测试工具横向比较

在浏览器中打开页面并加以判断,无疑是测试一个Web应用程序最直接的方式.借助一款合适的自动测试工具或框架,测试人员就可以在一定程度上从繁重的手动测试工作中解放出来.Ruby平台下的Watir无疑是这方面的姣姣者,因此被大量用于Web应用程序的回归测试或验收测试.不过对于使用.NET Framework的技术团队来说,Watir不一定是最好的选择.目前社区中已经出现了几款.NET平台下的Web测试框架,测试人员现在就可以使用自己最熟悉的语言来实现同样的功能,并与自己的开发环境无缝集成. WatiN

测试工具-sysbench

最近在学习mysql的一些测试工具,sysbench当仁不让的要学习一下,网上有很多相关的文章,但还是自己安装了一下,在安装的过程中遇到了一些问题,下面为安装测试的整个过程: 1.下载sysbench:http://sourceforge.net/projects/sysbench/ 2.解压安装包:sysbench-0.4.12.tar.gz出现sysbench-0.4.12文件 tar zxvf sysbench-0.4.12.tar.gz 3.安装: A.cd  sysbench-0.4.

2014非常好用的开源Android测试工具

当前有很大的趋势是转向移动应用平台,Android 是最广泛使用的移动操作系统,2014 年大约占 80% 以上的市场.在开发 Android 应用的时候要进行测试,现在市场上有大量的测试工具. 本文主要是展示一系列的开源 Android 测试工具.每个工具都会有相应的简短介绍,还有一些相关的资源.Android 测试工具列表是按照字母来排序的,最后还会介绍几个不是特别活跃的 Android 测试相关的开源项目. 本文提到的开源 Android 软件测试工具包括:Android Test Kit

《HTML5移动开发》—— 1.3 测试工具

1.3 测试工具 能在真实设备上运行网站是最好的,但是不可能在所有的设备上进行测试,因为有成千上万种设备,而且每天都会有新的设备出现.因此建议你在一组有代表性的设备上进行测试,这组设备能够覆盖各种配置,例如操作系统.浏览器.设备大小以及各种屏幕分辨率(resolution).内存约束和带宽访问等设备能力. 在真实设备上测试将会非常昂贵而且耗时.除了在上一节中介绍过的调试工具,还有一些工具可以帮助我们实现最大化的测试能力. 1.3.1 仿真器和模拟器 仿真器是一种软件,在电脑上复制或是模仿了一个(