selenium 自动化 插件安装弹出框怎么解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium 自动化 插件安装弹出框怎么解决相关的知识,希望对你有一定的参考价值。
最近刚刚接触到RobotFramework,发现这个工具倒是可以满足我的要求,而且可以结合seleniumLibrary,用来做web的自动化测试相当不错。之前我也接触过selenium,不过感觉那个工具更贴近开发人员使用,有了robotFramework之后,感觉这个工具相当强大,而且是贴近测试人员的。之所以说强大,主要是这些测试脚本都可以用文本格式保存(如txt/html等)==安装篇==
如果有想学的朋友可以自己下载以下文件安装(Google-code里可以找到大部分的安装文件):
这篇文章的内容比较旧了,最新的安装指南请查看 更新篇
python-2.7.1.msi(首先要有python,请选择将Python加入Path)
wxPython2.8-win32-unicode-2.8.11.0-py27.exe(wxPython,必须要的)
robotframework-2.6.0.win32.exe(然后装robot的Framework)
robotframework-ride-0.38.1.win32.exe(robotFramework的IDE,很不错)
robotframework-seleniumlibrary-2.8.win32.exe(seleniumLibrary)
安装成功后
执行[PythonDir]\Scripts\ride.py
看到界面就是安装成功了。
如果需要AutoIt支持就下载下面2个东东。
AutoItLibrary-1.1
pywin32-216.win32-py2.7.exe
==入门篇==
安装完成了,这个框架可以说是基于keyword的操作,按F5可以看到所有加载的keyword。
首先新增一个project
然后新增suite
然后新增test case,接着在suite层级add library,把selenium library加进来,添加后按F5检验是否添加成功,如图
OK,继续在suite的setting里设置suite启动和结束的keyword,即Start Selenium Server和Stop Selenium Server,他会在运行时帮助我们自动启动seleniumserver。
接下来在test case里添加一个步骤,open browser(一般用selenium做web测试都要用这个方法来打开浏览器),添加后关键字变成蓝色表示找到关键字了,否则可能是拼写错误或者没有加载相应的library。红色表示有一个必选参数要给定输入值,具体参数可以看F5里的keyword说明。
输入参数,第二个参数默认是firefox,不过我没装,就用ie吧。
以上只是一个简单的例子,没有详细说明每个步骤的操作,只是初步介绍。后续再详细介绍 收起 参考技术A
这种控件需要agent浏览器支持, 如果不支持,需要先配置agent浏览器.
2.如果不想使用控件, 可以试试直接给loginpwd 这个hidden控件赋值: type("id=loginpwd","pwd123");
selenium自动化实施中对windows弹出框的几种常见处理方案
一.概述
在使用自动化框架selenium实施中,经常会遇到windows弹出框的出现,刚入门的web自动化测试小伙伴不要慌哦!
二.几种常见的处理windows弹出框的方案
2.1 Selenium 处理安全对话框 (windows security dialog)用autoit 来代替
2.1.1 安装autoit-v3-setup.exe
2.1.2 将AutoitX3.dll和jcob.1.18-M2-x86.dll放到C:\\windows\\System32路径下;如果是64位系统,需把AutoitX3_63.dll和jcob.1.18-M2-x64.dll分别放到C:\\windows\\System32和C:\\windows\\Syswow64路径下
2.1.3 注册AutoitX3.dll:dos窗口中输入regsvr32 autoitX3.dll并按回车;如果是64位系统注册AutoitX3_64.dll:dos窗口中输入regsvr32 autoitX3_64.dll并按回车
2.1.4 在项目中需要引入jar包:AutoItX4Java.jar和jacob.jar
2.1.5 实例代码如下
1 /*** 2 * 3 * @param title window框的标题(用安装好的autoit64.exe可以识别wind弹窗口的标题) 4 * @param userName 用户名 5 * @param pwd 密码 6 */ 7 public void autoitHandleWin(String title,String userName,String pwd){ 8 AutoItX x=new AutoItX(); 9 if(x.winWaitActive(title,"",20)){ 10 if(x.winExists(title)){ 11 x.sleep(500); 12 x.ControlSetText(title,"",Edit1,userName); 13 x.ControlSetText(title,"",Edit1,pwd); 14 x.ControlClick(title,"",Button); 15 } 16 } 17 }
2.2 JAVA程序实现自动测试,自动演示功能,或者是其它的一些鼠标和键盘控制的应用。出于这样的目的,自从JDK1.3开始,它就为我们提供了一个用来产生本机输入事件的机器人类--java.awt.Robot;钮
2.2.1 比如我们可以用Robot类模拟键盘发送快捷键的方式来操作IE11的下载框的保存按,实例代码如下:
1 public void robotHandleWin(){ 2 try { 3 Robot robot=new Robot(); 4 robot.keyPress(KeyEvent.VK_ALT); 5 robot.keyPress(KeyEvent.VK_S); 6 robot.delay(500); 7 robot.keyRelease(KeyEvent.VK_S); 8 robot.keyRelease(KeyEvent.VK_ALT); 9 } catch (AWTException e) { 10 // TODO Auto-generated catch block 11 e.printStackTrace(); 12 } 13 }
2.3 根据截图来操作
2.3.1 安装sikuli-x-1.0rc3(r905)-win32.exe
2.3.2 配置环境变量
下面来做一个自动化的小例子。(官方的第一个小例子为开始运行里输入hello world )这里为打开360极速浏览器(默认为百度首页),搜索框里输入sikuli ,然后点击“百度一下”按钮搜索。
第一步、点击桌面360极速浏览器图标。
方法一,输入双击函数doubleClick(),然后通过截图工具对桌面图标截图,输入。
方法二很快捷,点击窗口左侧双击函数doubleClick(),直接进入截图状态。截图完成后直接添加函数到脚本编辑区域。
第二步,我们依然用第二种快捷的方式,点击左侧type(图标,text) 函数,这次截取的对象为百度首页的输入框。
因为,默认定位的焦点为图片的中心,我们要输入的位置在输入框的左侧,所以需要对焦点进行调整。直拉点击截图的输入框图片。
当然,在这个窗口中,我们也可调整图片的匹配度,匹配度越低容错能力越强。这里来简单解释一下:
大家知道ie7 与 ie8 的图标虽然相似,但还是有所差别的。为了使脚本的移植性更强。比如本机是用IE7 录制的脚本,移植到另一台电脑上只有IE 8 ,因为精确度调低,脚本也会把IE8 当IE 7 来执行。当然有些情况下调低并不好,比如桌面上有两个图标非常相识,那么精确度调整的很低,那么脚本就无法辨认谁是谁了。
第三步、这一步与第一步一样,不过这里要使用的函数是单击函数click() ,点击“百度一下”按钮。
下面完整脚本:
运行一下吧这个小脚本吧!成就感就此而生,这是你对这种技术产生兴趣的动力。。
2.3.3 根据截的图片来点击页面对象,代码实例如下
1 public void sikuliHandleWin(String pngPath,String envetName){ 2 Screen screen=new Screen(); 3 Pattern image=new Pattern(pngPath); 4 if(envetName.equalsIgnoreCase("click")){ 5 try { 6 if(screen.exists(image)!=null){ 7 screen.click(image); 8 } 9 } catch (Exception e) { 10 // TODO: handle exception 11 } 12 } 13 }
---------------------------------技术改变生活!,QQ:770544029
以上是关于selenium 自动化 插件安装弹出框怎么解决的主要内容,如果未能解决你的问题,请参考以下文章
Selenium2+python自动化47-判断弹出框存在(alert_is_present)
Selenium2+python自动化47-判断弹出框存在(alert_is_present)
Selenium2+python自动化47-判断弹出框存在(alert_is_present)转载