Web测试——关于Open Browser的那些坑

发表于:2018-3-28 09:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:闫文姣    来源:绿盟科技

  自动化测试工具Robot Framework(简称RF)可以支持端口测试、web测试、数据库测试、集成自动化测试等。在常用的web测试中,我们编写用例的第一条就是用浏览器打开指定的url界面,所用到的关键字就是:Open Browser。但是就是这么一个简单的关键字,在使用过程中却会遇到各种奇怪的报错,本文将详细介绍我曾经踩过的坑,以及怎么越坑。
  Open Browser关键字是来自Selenium2Library库,所以首先settings里需要加上Selenium2Library库,然后编写用例的第一句,如下:
  运行用例,报错如下:
  “Geckodriver executable need to be in PATH”引起这个报错的原因可能有两个:第一,你本地已经下载了火狐浏览器的驱动Geckodriver,但是没有把该驱动文件的路径添加到系统变量中;第二,那就是你压根本地就没有下载过Geckodriver驱动。
  1.Geckodriver的下载路径:https://github.com/mozilla/geckodriver/releases
  2.下载好后,解压geckodriver.exe压缩包,将解压后的.exe文件放置在C:\python34或者C:\python27,具体放置在哪个路径下,要看你RF使用的是python2.7版本还是3.4版本,使用哪个版本放置在对应路径下。
  3.桌面计算机图标右键“属性”—“高级系统设置”— 环境变量 — 系统变量处查找Path变量 — 编辑添加路径C:\python34或者C:\python27。
  4.还需要将使用的火狐浏览器的安装路径也放到path变量里。
  按照上述修改后,再次运行用例,火狐浏览器打开了,但是链接url并没有获取到,又报错:KeyError : sessionId,如下:
  然后又百度了下Sessionid的产生由来,浏览器第一次访问服务器时,会在服务器端产生一个Session,每一个Session有一个Sessionid和其对应。在Session被创建之后,就可以调用Session相关的方法往Session中增加内容了,而这些内容只会保存在服务器中,发到客户端的只有Sessionid;当客户端再次发送请求的时候,会将这个Sessionid带上,服务器接受到请求之后就会依据Sessionid找到相应的Session,从而再次使用之。那这个log报错应该就是产生的Session id浏览器端就没有收到,而RF中控制浏览器操作的就是selenium,试着在cmd中使用命令pip install -U selenium 更新selenium到最新,再次执行用例,用例执行成功。
  总结上述,关键字Open Browser除过语法错误外,其他的报错基本都是浏览器和driver或者selenium组件之间版本高低不一致导致的。大家有使用RF的,可以参考。


上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号