RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)
好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识。而 RobotFramework自动化测试框架 是自动化测试中
用的最多一个框架,基于Python编程语言设计的可扩展的关键字驱动模式的测试自动化框架,具备良好的可扩展性,可以通过xml-rpc服务扩展支持其它的常用编程语言,可以同时测试多种类型的客户端或者接口,可以支持进行分布式测试执行。
Robot Framework具体如何的特点:
- 易于使用,采用表格式输入语法,统一的测试用例格式。
- 重用性好,可以利用现有关键字来组合新的用户自定义关键字。
- 支持资源文件,支持多种变量类型,包括字符串变量,list列表变量,Dictionary字典变量等。
- 测试案例执行结果报告和日志采用HTML格式,易于阅读和邮件转发。
- 提供标签以分类来选择将被执行的测试用例,使得测试案例的执行选择更加灵活。
- 支持WEB界面测试,web接口服务测试、GUI 测试、多种终端测试。
- 支持多种数据库的操作,包括常用的关系型数据库,非关系型数据库。
- 易于扩展自定义的Lib库,可以通过python或者java等其他开发语言来动态扩展Lib库。
本文章节目录:
1、Input Text
2、Click Button
3、Click Element
4、Click Link
5、Add Cookie,Get Cookies 和Delete Cookie
6、Get All Links
7、Choose File(文件上传)
8、Get Text
9、Get Title
说明:我们这里是紧接着RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser 这篇往后继续的。作者的原创文章,转载时请注明出处:作者为张永清,链接为https://www.cnblogs.com/laoqing/articles/11831022.html。
1、Input Text
Input Text关键字用于模拟向一个输入框中输入文字内容,该关键字接收两个参数[ locator | text ],locator参数指的定位界面元素的方式,text参数指的是需要输入的内容。
示例1:打开百度,向输入框中输入Robot FrameWork,这里采用id的方式来定位界面的输入框元素,可以采用谷歌浏览器自带的开发者工具查看该输入框的元素,如下图所示。

Open Browser http://www.baidu.com chrome
Input Text id=kw Robot FrameWork
执行结果如下:如下图中所示。
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0002
20170529 15:44:23.918 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'
20170529 15:44:32.068 : INFO : Typing text 'Robot FrameWork' into text field 'id=kw'
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0002

2、Click Button
Click Button关键字用于模拟点击页面中的按钮,该关键字接收一个参数[ locator ]。
示例1:打开百度,向输入框中输入Robot FrameWork后,点击百度一下按钮,进行搜索。
这里通过id=su来定位百度一下这个按钮,如下图中所示。
Open Browser http://www.baidu.com chrome
Input Text id=kw Robot FrameWork
Click Button id=su

执行结果如下:如下图中所示。
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0002
20170529 16:01:02.161 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'
20170529 16:01:12.505 : INFO : Typing text 'Robot FrameWork' into text field 'id=kw'
20170529 16:01:12.917 : INFO : Clicking button 'id=su'.
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0002

3、Click Element
Click Element关键字用于模拟点击一个通过locator定位到的具体元素,可以是通过id或者name,xpath等都可以。该关键字接收一个参数[ locator ]
示例1:这里我们继续访问百度的首页,通过id来定位一个元素,并且使用Click Element关键字来模拟点击这个元素定位到的按钮,如下图中所示。

Open Browser http://www.baidu.com chrome
Click Element id=su
Sleep 2
Close Browser
执行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0003
20180728 09:59:02.582 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'
20180728 09:59:14.272 : INFO : Clicking element 'id=su'.
20180728 09:59:17.158 : INFO : Slept 2 seconds
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0003
4、Click Link
Click Link关键字用于模拟点击一个链接 。该关键字接收一个参数[ locator ]
示例1:这里我们继续访问百度的首页,通过模拟点击百度首页又上角的”地图”链接来说明此关键字的使用。我们通过href="http://map.baidu.com" 来模拟点击这个链接,如下图中所示。

Open Browser http://www.baidu.com chrome
Click Link http://map.baidu.com
Sleep 2
Close Browser
执行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0004
20180728 10:10:37.328 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'
20180728 10:10:47.171 : INFO : Clicking link 'http://map.baidu.com'.
20180728 10:10:53.170 : INFO : Slept 2 seconds
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0004
示例2:Click Link关键字除了上面说到的直接通过href链接来定位元素外,也可以通过id或者name来定位,这里以name作为示例来进行示例。
Open Browser http://www.baidu.com
Click Link name=tj_trmap
Sleep 5
Close Browser
执行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0005
20180728 10:22:35.467 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'
20180728 10:22:44.921 : INFO : Clicking link 'name=tj_trmap'.
20180728 10:22:57.497 : INFO : Slept 5 seconds
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0005
运行时可以看到正在加载百度地图的画面,如下图中所示。


5、Add Cookie,Get Cookies 和Delete Cookie
Add Cookie关键字用于模拟向本地浏览器中添加一个Cookie缓存,Cookie也是我们在做web自动化测试时,经常需要用到的一个概念。该关键字接收[ name | value | path=None | domain=None | secure=None | expiry=None ]这几个参数,如下表所示。
|
name |
Cookie的名称 |
|
Value |
Cookie的具体值 |
|
path |
Cookie对应的路径,如果不填的话,默认为None |
|
domain |
Cookie对应的域名,如果不填的话,默认为None |
|
secure |
Cookie的安全属性,这个属性是用来保证cookie的安全的,如果一个cookie被设置了Secure=true,那么这个cookie只能用https协议发送给服务器,用http协议是不发送的。 |
|
expiry |
Cookie的过期时间,如果不填的话,默认为空 |
这里我以登录到我的博客园后,浏览器中显示的cookie为示例,通过下图中所示。可以看到上面表格中对应的字段都可以在浏览器中的cookie中看到。

Get Cookie关键字用于获取浏览器中缓存的所有Cookie,这个关键字后面不需要加任何的参数。
Delete Cookie关键字用于删除浏览器中缓存的Cookie,该关键字接收一个参数[ name ],该参数用于标志需要删除的cookie的名称。
示例1:这里我们以访问百度首页为例,我们自己添加一个名称为book的cookie,并且将该cookie的值写为Robot Framework,secure属性设置为true,然后通过Get Cookies 关键字来获取所有的Cookie,然后删除我们自己添加的Cookie。
Open Browser http://www.baidu.com chrome
Add Cookie book Robot Framework / baidu.com true
${cookie} Get Cookies
log ${cookie}
Sleep 50
Delete Cookie book
${cookienew} Get Cookies
log ${cookienew}
Sleep 2
Close Browser
运行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0006
20180728 11:02:14.076 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'
20180728 11:02:24.488 : INFO : ${cookie} = H_PS_PSSID=26523_1443_26433_21112_26924_20930; BAIDUID=53A9ECC2223045BB4D28064D8CCC2428:FG=1; PSTM=1532746930; BIDUPSID=53A9ECC2223045BB4D28064D8CCC2428; delPer=0; BD_HOME=0; BD_UPN=12314353; book= Robot Framework
20180728 11:02:24.489 : INFO : H_PS_PSSID=26523_1443_26433_21112_26924_20930; BAIDUID=53A9ECC2223045BB4D28064D8CCC2428:FG=1; PSTM=1532746930; BIDUPSID=53A9ECC2223045BB4D28064D8CCC2428; delPer=0; BD_HOME=0; BD_UPN=12314353; book=Robot Framework
20180728 11:03:14.490 : INFO : Slept 50 seconds
20180728 11:03:15.772 : INFO : ${cookienew} = H_PS_PSSID=26523_1443_26433_21112_26924_20930; BAIDUID=53A9ECC2223045BB4D28064D8CCC2428:FG=1; PSTM=1532746930; BIDUPSID=53A9ECC2223045BB4D28064D8CCC2428; delPer=0; BD_HOME=0; BD_UPN=12314353
20180728 11:03:15.773 : INFO : H_PS_PSSID=26523_1443_26433_21112_26924_20930; BAIDUID=53A9ECC2223045BB4D28064D8CCC2428:FG=1; PSTM=1532746930; BIDUPSID=53A9ECC2223045BB4D28064D8CCC2428; delPer=0; BD_HOME=0; BD_UPN=12314353
20180728 11:03:17.775 : INFO : Slept 2 seconds
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0006
从运行的日志结果看,通过Add Cookie book Robot Framework / baidu.com true,可以添加一个Cookie,并且可以将该Cookie的secure属性设置为true。在运行的过程,通过浏览器自带的开发者工具,也可以看到名称叫book的cookie已经成功添加完成,如下图中所示。

在使用Get Cookies关键字时,可以获取到浏览器打开后里面所有的cookie,除了获取到这里我们自己添加的cookie外,还获取到了访问百度首页时,百度首页在本地浏览器中保存的cookie。最后通过Delete Cookie关键字删除名称为book的cookie后,我们再通过Get Cookies关键字来获取所有的cookie时,就已经不能再获取到名称为book的cookie信息了。
6、Get All Links
Get All Links 关键字用来获取所有页面上所有的href链接的元素对应的id,链接对应的元素中没有id时,就以一个空字符串代替。
示例1:我们继续访问百度,找出百度首页中存在多少个链接数
Open Browser http://www.baidu.com/ chrome
${links} Get All Links
log ${links}
Sleep 2
Close Browser
运行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0007
20180728 11:31:18.136 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com/'
20180728 11:31:28.558 : INFO : get_attribute id
20180728 11:31:28.566 : INFO : get_attribute id
20180728 11:31:28.574 : INFO : get_attribute id
20180728 11:31:28.582 : INFO : get_attribute id
20180728 11:31:28.592 : INFO : get_attribute id
20180728 11:31:28.599 : INFO : get_attribute id
20180728 11:31:28.607 : INFO : get_attribute id
20180728 11:31:28.617 : INFO : get_attribute id
20180728 11:31:28.624 : INFO : get_attribute id
20180728 11:31:28.633 : INFO : get_attribute id
20180728 11:31:28.640 : INFO : get_attribute id
20180728 11:31:28.648 : INFO : get_attribute id
20180728 11:31:28.657 : INFO : get_attribute id
20180728 11:31:28.664 : INFO : get_attribute id
20180728 11:31:28.673 : INFO : get_attribute id
20180728 11:31:28.682 : INFO : get_attribute id
20180728 11:31:28.690 : INFO : get_attribute id
20180728 11:31:28.699 : INFO : get_attribute id
20180728 11:31:28.706 : INFO : get_attribute id
20180728 11:31:28.716 : INFO : get_attribute id
20180728 11:31:28.723 : INFO : get_attribute id
20180728 11:31:28.732 : INFO : get_attribute id
20180728 11:31:28.740 : INFO : get_attribute id
20180728 11:31:28.747 : INFO : get_attribute id
20180728 11:31:28.756 : INFO : get_attribute id
20180728 11:31:28.764 : INFO : get_attribute id
20180728 11:31:28.775 : INFO : get_attribute id
20180728 11:31:28.782 : INFO : get_attribute id
20180728 11:31:28.790 : INFO : get_attribute id
20180728 11:31:28.798 : INFO : get_attribute id
20180728 11:31:28.806 : INFO : get_attribute id
20180728 11:31:28.814 : INFO : get_attribute id
20180728 11:31:28.822 : INFO : get_attribute id
20180728 11:31:28.831 : INFO : ${links} = [u'result_logo', u'quickdelete', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'setf', u'', u'', u'', u'', u'', u'jgwab']
20180728 11:31:28.833 : INFO : [u'result_logo', u'quickdelete', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'setf', u'', u'', u'', u'', u'', u'jgwab']
20180728 11:31:30.833 : INFO : Slept 2 seconds
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0007
7、Choose File(文件上传)
做自动化测试时,我们经常遇到的就是上传文件了,这里我们可以使用Choose File 关键字就可以完成该操作,Choose File 关键字接收[ locator | file_path ]两个关键字,如下表5-1-3所示。
|
locator |
上传文件时,上传文件对应的输入框的输入字段,可以通过我们常见的元素定位的方式来定位到。 |
|
file_path |
这个参数指的是需要上传的文件的本地路径 |
表5-1-3
示例1:这里我们还是以百度首页为例,百度首页支持图片搜素,很多经常使用百度引擎进行搜索的朋友可能都用过,有点类似通过输入一张图片,然后找和这张图片的相似图片功能一样,在这个AI人工智能大热的时代,这个功能也越来越被很多电商进行商品搜索时使用。
如下的示例中,我们首先打开百度首页。然后通过我们上面介绍到的Click Element关键字来模拟点击输入框旁边的按钮,来切换到图片上传模式。切换完后,然后通过Choose File关键字来上传文件,这里我们的locator选择使用xpath来定位。之后就是选择我磁盘中的一张个人图片上传。
在获取xpath路径时,我们可以通过Chrom浏览器自带的开发者工具来直接复制到xpath路径,如下图中所示。

Open Browser http://www.baidu.com/ chrome
Click Element //*[@id="form"]/span[1]/span
Sleep 10
Choose File //*[@id="form"]/div/div[2]/div[2]/input E:\\zhangyongqing.bmp
Sleep 10
Close Browser
运行结果如下(这里的运行结果,我们选择从自动化执行report中来查看):
SUITE RobotFrameworkTest1
javascript:expandAll('s1')javascript:collapseAll('s1')C:\Users\yongqing\AppData\Local\Temp\RIDExpjcyt.d\log.html - s1#s1
|
Full Name: |
RobotFrameworkTest1 |
|
Source: |
|
|
Start / End / Elapsed: |
20180728 11:52:36.817 / 20180728 11:53:08.127 / 00:00:31.310 |
|
Status: |
1 critical test, 1 passed, 0 failed |
00:00:31.284SUITE TestSuite6
javascript:expandAll('s1-s1')javascript:collapseAll('s1-s1')C:\Users\yongqing\AppData\Local\Temp\RIDExpjcyt.d\log.html
- s1-s1#s1-s1
|
Full Name: |
RobotFrameworkTest1.TestSuite6 |
|
Source: |
F:\project\RobotFrameworkTest1\RobotFrameworkTest1\TestSuite6.txt |
|
Start / End / |
20180728 |
|
Status: |
1 critical test, |
00:00:31.108TEST TestCase0008
javascript:expandAll('s1-s1-t1')javascript:collapseAll('s1-s1-t1')C:\Users\yongqing\AppData\Local\Temp\RIDExpjcyt.d\log.html
- s1-s1-t1#s1-s1-t1
|
Full Name: |
RobotFrameworkTest1.TestSuite6.TestCase0008 |
|
Start / End / |
20180728 |
|
Status: |
PASS (critical) |
00:00:09.825KEYWORD Selenium2Library . Open Browser http://www.baidu.com/,
chrome
javascript:expandAll('s1-s1-t1-k1')javascript:collapseAll('s1-s1-t1-k1')C:\Users\yongqing\AppData\Local\Temp\RIDExpjcyt.d\log.html
- s1-s1-t1-k1#s1-s1-t1-k1
|
Documentation: |
Opens a new browser instance to given URL. |
|
Start / End / Elapsed: |
20180728 11:52:37.017 / 20180728 |
|
11:52:37.017 |
INFO |
Opening |
00:00:00.119KEYWORD Selenium2Library . Click Element //*[@id="form"]/span[1]/span
javascript:expandAll('s1-s1-t1-k2')javascript:collapseAll('s1-s1-t1-k2')C:\Users\yongqing\AppData\Local\Temp\RIDExpjcyt.d\log.html
- s1-s1-t1-k2#s1-s1-t1-k2
|
Documentation: |
Click element identified by `locator`. |
|
Start / End / Elapsed: |
20180728 11:52:46.842 / 20180728 |
|
11:52:46.843 |
INFO |
Clicking '//*[@id="form"]/span[1]/span'. |
00:00:10.001KEYWORD BuiltIn . Sleep 10
javascript:expandAll('s1-s1-t1-k3')javascript:collapseAll('s1-s1-t1-k3')C:\Users\yongqing\AppData\Local\Temp\RIDExpjcyt.d\log.html
- s1-s1-t1-k3#s1-s1-t1-k3
|
Documentation: |
Pauses the test executed for the given time. |
|
Start / End / Elapsed: |
20180728 11:52:46.962 / 20180728 |
|
11:52:56.962 |
INFO |
Slept 10 |
00:00:00.095KEYWORD Selenium2Library . Choose File //*[@id="form"]/div/div[2]/div[2]/input,
E:\\zhangyongqing.bmp
javascript:expandAll('s1-s1-t1-k4')javascript:collapseAll('s1-s1-t1-k4')C:\Users\yongqing\AppData\Local\Temp\RIDExpjcyt.d\log.html
- s1-s1-t1-k4#s1-s1-t1-k4
|
Documentation: |
Inputs the `file_path` into file input field found by `locator`. |
|
Start / End / Elapsed: |
20180728 11:52:56.964 / 20180728 |
00:00:10.002KEYWORD BuiltIn . Sleep 10
javascript:expandAll('s1-s1-t1-k5')javascript:collapseAll('s1-s1-t1-k5')C:\Users\yongqing\AppData\Local\Temp\RIDExpjcyt.d\log.html
- s1-s1-t1-k5#s1-s1-t1-k5
|
Documentation: |
Pauses the test executed for the given time. |
|
Start / End / Elapsed: |
20180728 11:52:57.060 / 20180728 |
|
11:53:07.061 |
INFO |
Slept 10 |
00:00:01.061KEYWORD Selenium2Library . Close Browser
javascript:expandAll('s1-s1-t1-k6')javascript:collapseAll('s1-s1-t1-k6')C:\Users\yongqing\AppData\Local\Temp\RIDExpjcyt.d\log.html
- s1-s1-t1-k6#s1-s1-t1-k6
|
Documentation: |
Closes the current browser. |
|
Start / End / Elapsed: |
20180728 11:53:07.063 / 20180728 |
为了能看到整个的过程,我捕获了运行过程中关键步骤执行时的实际效果图片,从图片中也可以清晰的看到图片从上传到上传后,百度引擎自动执行搜索的一个过程,如下图所示



8、Get Text
Get Text关键字用来获取文本内容,该关键字接收[ locator ]这一个关键字,locator可以是通过id或者name,xpath等都可以定位。
示例1:
这里我们依然以百度首页为例,获取name="tj_trnews" 包含的文本内容,如下图所示。

Open Browser http://www.baidu.com/ chrome
${text} Get Text name=tj_trnews
log ${text}
Close Browser
运行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0009
20180728 13:04:33.505 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com/'
20180728 13:04:42.409 : INFO : ${text} = 新闻
20180728 13:04:42.411 : INFO : 新闻
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0009
示例2:上面的示例中,我们的locator是通过的name来定位的,我们换成是xpath来试试。
Open Browser http://www.baidu.com/ chrome
${text} Get Text //*[@id="u1"]/a[1]
log ${text}
Close Browser
运行结果如下(这次的运行结果,我们选择从自动化执行report中来查看):如下图所示。

我们会发现使用xpath的效果是一样的。
9、Get Title
Get Title关键字用来获取浏览器网页的title,该关键字后面不需要接收任何的参数。
示例1:这里我们模拟访问百度首页,然后获取百度首页的Title
Open Browser http://www.baidu.com/ chrome
${title} Get Title
log ${title}
Close Browser
运行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0011
20180728 13:18:33.227 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com/'
20180728 13:18:42.213 : INFO : ${title} = 百度一下,你就知道
20180728 13:18:42.214 : INFO : 百度一下,你就知道
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0011
未完待续....
备注:本文内容摘选自Robot Framework自动化测试框架核心指南 一书。
作者新书上架 
Robot Framework自动化测试框架核心指南电子版试读
Robot Framework自动化测试框架核心指南天猫官方旗舰店购买
相关博文汇总:
RobotFramework下的http接口自动化Create Http Context关键字的使用
RobotFramework下的http接口自动化Get关键字的使用
RobotFramework下的http接口自动化post关键字的使用
RobotFramework下的http接口自动化Get Response Body关键字的使用
RobotFramework下的http接口自动化Get Response Status 关键字的使用
RobotFramework下的http接口自动化Get Response header 关键字的使用
RobotFramework下的http接口自动化Set Request Header 关键字的使用
RobotFramework下HttpLibrary库其它关键字
RobotFramework下的http接口自动化Set Request Body 关键字的使用
RobotFramework下的http接口自动化Follow Response关键字的使用
RobotFramework自动化测试框架的基础关键字(一)
RobotFramework自动化测试框架的基础关键字(二)
RobotFramework自动化测试框架的基础关键字(三)
RobotFramework自动化测试框架的基础关键字(四)
RobotFramework自动化测试框架的基础关键字(五)
RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍
RobotFramework自动化测试框架-移动手机自动化测试Open Application关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary库其它的常见自动化关键字
RobotFramework自动化测试框架-移动手机自动化测试Input Text和Click Button关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Clear Text关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Click Element关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Click A Point关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Click Element At Coordinates关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Get Element Location关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Get Network Connection Status和Set Network Connection Status关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Element Attribute Should Match关键字的使用
RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)
RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib
RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser
RobotFramework自动化测试框架-MongoDBLibrary库的使用
RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)的更多相关文章
- RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)
本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramewor ...
- RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍
在使用AppiumLibrary库时,需要预先安装好Appium自动化工具,Appium官网地址为:http://appium.io/ Appium的GitHub地址为:https://github. ...
- RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)
在自动化过程中,我们经常需要连接不同的数据库,并且对数据库进行很多不同的操作,RobotFramework中,提供了DatabaseLibrary这个库来操作数据库,我们可以按照官网中的说明来安装Da ...
- RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib
使用Python构建Lib工程 可以用来开发Python Lib的IDE工具有很多,常见的有Pycharm,Eclipse with PyDev插件等,而且在RobotFramework官网中也已经提 ...
- Selenium Web 自动化 - 项目实战(二)
Selenium Web 自动化 - 项目实战(二) 2016-08-08 什么是数据驱动?简答的理解就是测试数据决定了测试结果,这就是所谓数据驱动.数据驱动包含了数据,他就是测试数据,在自动化领域里 ...
- Selenium Web 自动化 - 项目实战(三)
Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解 3.1 解析新增页面目录 3.2 解析新增测试用例目录 3. ...
- Selenium Web 自动化 - 项目实战(一)
Selenium Web 自动化 - 测试框架(一) 2016-08-05 目录 1 框架结构雏形2 把Java项目转变成Maven项目3 加入TestNG配置文件4 Eclipse编码修改5 编写代 ...
- Selenium Web 自动化 - 项目持续集成
Selenium Web 自动化 - 项目持续集成 2017-02-13 目录 1环境准备 1.1 安装git 1.2 安装jenkins 1.3 安装jenkins插件 1.4 jekins ...
- Selenium Web 自动化
1 Selenium Web 自动化 - Selenium(Java)环境搭建 2 Selenium Web 自动化 - 如何找到元素 3 Selenium Web 自动化 - Selenium常用A ...
随机推荐
- 关于CSS的书写规范和顺序
关于CSS的书写规范和顺序,是大部分前端er都必须要攻克的一门关卡,如果没有按照良好的CSS书写规范来写CSS代码,会影响代码的阅读体验.这里总结了一个CSS书写规范.CSS书写顺序供大家参考,这些是 ...
- Java通过JDK动态代理简单的实现一个AOP
首先说一下,因为自己还没有去研读spring的AOP的源码,只是大致知道其功能,便想着自己先手动实现一个先看看,觉得这样以后研读源码的时候会收获更多! 实现:做一个在添加注解的方法执行之前,可以先执行 ...
- 分享一个移动端rem布局的适配mixin
/*================================================================ 以下为基于ip5 宽度320做的适配,标准html{font-si ...
- 06-01 DeepLearning-图像识别
目录 深度学习-图像识别 一.人脸定位 二.手工提取特征的图像分类 2.1 识图认物 2.2 传统分类系统的特征提取 2.3 计算机眼中的图像 2.4 什么是图像特征? 2.5 卷积运算 2.6 利用 ...
- 模拟telnet协议C语言客户端程序
首先要了解telnet协议,一下两篇blog给了我初步的思路 https://www.cnblogs.com/liang-ling/p/5833489.html 这篇有比较基础的介绍 以及IAC命令含 ...
- 主动降噪(Active Noise Control)
智能耳机 人机交互 智能声学终端 智能耳机 智能音箱 智能听力器 喇叭单体 动圈喇叭 新材料 DLC 石墨烯 陶瓷单位 吸音材料 智能芯片 阵列式麦克风 声纹传感器 演算法 降噪算法 智能听力保护 A ...
- 数据存储检索之B+树和LSM-Tree
作为一名应用系统开发人员,为什么要关注数据内部的存储和检索呢?首先,你不太可能从头开始实现一套自己的存储引擎,往往需要从众多现有的存储引擎中选择一个适合自己应用的存储引擎.因此,为了针对你特定的工作负 ...
- 小白学 Python(3):基础数据类型(下)
人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串. ...
- [BZOJ29957] 楼房重建 - 线段树
2957: 楼房重建 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 3294 Solved: 1554[Submit][Status][Discus ...
- 一起来看一下Java中的Annotation注解
目录: 一. 什么是Annotation 二. Annotation的作用 2.1 编译器使用到的注解 2.2 .class文件使用到的注解 2.3 运行期读取的注解 三. 定义Annotation ...