1、通过使用 RFT-64(针对Windows 7 64位的系统)压缩文件进行一键安装;
1) 首先解压RFT-64文件,找到setup.bat文件,以管理员身份运行进行一键安装,根据提示完成安装操作。
2) 安装完成后,打开cmd窗口,输入python查看环境变量是否配置成功,注:提示‘Python’不是内部或外部命令,说明Python的环境变量没有配置成功,找到Python的安装目录,将安装路径配置到环境变量中
3) 打开cmd窗口,输入pip list查看安装过的插件,注:提示‘pip’不是内部或外部命令,说明环境变量没有配置成功,将….\Python27\Scripts安装路径配置到环境变量中
4) 一切安装完成后,写一个简单的事例,验证一下驱动,查看是否能够正常打开浏览器,以及对浏览器的页面操作是否正常:
IE浏览器驱动:IEDriverServer.exe
Google浏览器驱动:chromedriver.exe
Fire Fox浏览器 geckodriver.exe 需要安装对应的版本,否则无法正常启动浏览器
注:(根据对应的版本选择对应的驱动程序,这里选用的是32位的)
但是我在使用Selenium WebDriver时,遇到了很多坑。这些问题,有的是因为Selenium WebDriver与浏览器不同版本之间兼容性的问题,有的是Selenium WebDriver本身的bug,当然也不乏自己对Selenium WebDriver某些功能理解不透彻。我花时间总结了一下,分享给大家,希望大家以后遇到问题可以避过这些坑,少走弯路。
2、 插入中文数据提示
FAIL UnicodeEncodeError: ‘latin-1’ codec can’t encode characters in position 92-107: ordinal not in range(25
DataBaseLibrary插入中文乱码的解决:修改D:\Python27\Lib\site-packages\DatabaseLibrary\connection_manager.py里的connect_to_database函数,self._dbconnection = db_api_2.connect (db=dbName, user=dbUsername, passwd=dbPassword, host=dbHost, port=dbPort, charset=”utf8”),增加charset设定
3、调用MySQL出现问题
ImportError: DLL load failed: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3
安装MySQL-pythonMySQL_python-1.2.5-cp27-none-win_amd64.whl,打开cmd窗口,执行pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl
4、调用cx_Oracle,报错
ImportError: DLL load failed: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3
解决:RobotFramework在安装cx_Oracle后,如果直接连接Oracle数据库时,会出现“Dll load failed”错误。因为Python在使用cx_Oracle类库访问oracle需要oci接口。当cx_Oracle找不到需要的oci的dll的时候就会报这个错误。
解决方法可以从oracle的客户端找3个dll文件拷贝到cx_Oracle的安装目录D:\Python25\Lib\site-packages
oraociei11.dll
oraocci11.dll
oci.dll
资源访问路径: http://download.csdn.NET/download/benq0124/7094561
还是报错
ImportError: DLL load failed: %1 \xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32 \xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3
原因:oci.dll的版本一定要和cx_Oracle模块的版本一致,不一定要和实际的Oracle的数据版本一致。
例如:cx_Oracle版本是:10g的,那么oci.dll 也必须是10g的,至于实际连接的数据库版本,只要版本比10g低就可以了,例如9i。
解决:网上找oci.dll 64位相对应版本的,拷贝到cx_Oracle的安装目录D:\Python27\Lib\site-packages
InterfaceError: Unable to acquire Oracle environment handle
我用的客户端是instantclient,因为cx_Oracle连接数据库的时候要用到客户端中的lib,而python是64位的,cx_Oracle自然是64位的,所以客户端也应该用64位的。换成64位的instantclient,哈哈,搞掂!
64位的instantclient不好的地方就是无法用plsql developer了,当然可以在另一台机器上配置32位的instantclient,然后远程访问。
依然报错
InterfaceError: Unable to acquire Oracle environment handle 或者
ImportError: DLL load failed: %1 \xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32 \xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3
就是要把instantclient它的安装路径配置到环境变量中,配置好以后重新启动一下ride
5、用rf运行IEdriver的速度好慢,比如在输入框输入用户名,一秒输入一个字符。你们的是不是这样子的?。如果是chromedriver就很快
解决办法:把IEDriver从64位换成32位
6、Firefox启动不起来,或者是启动了,页面是空白的,URL地址栏是空的
解决办法:可能是Firefox版本过高,碰到此问题请降低Firefox版本,最好是45.0版本以下
7、怎么制定robotframework的日志路径?
解决办法:在run的arguments输入这个“-l D:\RobotFramework\Robot_Report\log -r D:\RobotFramework\Robot_Report\report -o D:\RobotFramework\Robot_Report\output ”
8、robotframework的case跑完后,“Report”和“Log”按钮是灰色的,点击不了
解决办法:启动任务管理器(ctrl+alt+del),IE的进程,找IEDriverServer.exe结束掉,如果是chrome,就找到chromeDriverServer.exe。如下截图是IE浏览器的。
9、数据备份
1) 通过excel对数据库进行数据备份
通过执行以下语句插入excel数据备份表(针对MySQL)
LOAD DATA LOCAL INFILE “C:/Users/PC/Desktop/t_baike_word_value.csv“ 所要插入数据的绝对路径
INTO TABLE `t_baike_word_value` 所要插入数据的表
CHARACTER SET utf8 设置编码格式
FIELDS TERMINATED BY “\t”
TERMINATED BY “,”
OPTIONALLY ENCLOSED BY ‘”’
ESCAPED BY ‘\\’
LINES TERMINATED BY “\r\n”
2) 直接对数据库进行操作
MySQL user_center user_center user_center
Oracle p95100 l234123 orcl
10、元素定位
1)元素定位的方法:findElement() 与 findElements()
a、findElement() 该方法返回基于指定查询条件的webElement对象,或抛出不符合条件的异常 eg:driver.findElement(By.id(“userID”));
8)使用任意属性值匹配元素
11、jenkins集成执行
1)首先需要申请一台远程测试机;
2)然后在jenkins新建一个节点
3)然后在该节点下面新建测试工程
4)配置项目
命令执行:pybot -i P1 -l log.html -r report.html -o output.xml C:\jenkins\workspace\autoTest_portal\autoTest\GuaHao_Web