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     }
View Code

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     }
View Code

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     }
View Code

---------------------------------技术改变生活!,QQ:770544029

 

以上是关于selenium 自动化 插件安装弹出框怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

Selenium2+python自动化47-判断弹出框存在(alert_is_present)

Selenium2+python自动化47-判断弹出框存在(alert_is_present)

Selenium2+python自动化47-判断弹出框存在(alert_is_present)转载

使用Selenium框架在做Web自动化测试时,如何处理弹出框?

使用layer插件为啥弹出框没点确定就自动消失了

selenium自动化实施中对windows弹出框是怎样处理的?