1.解决从jenkins打开robot framework报告会提示‘Opening Robot Framework log failed ’的问题
解决方案:
------1)如果你的Jenkins安装为windows服务,也就是下载的是.msi版本,如下解决
1)修改jenkins.xml如下
<arguments>-Xrs -Xmx256m -Dhudson.model.DirectoryBrowserSupport.CSP= -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
2)重启jenkins
-----2)Jenkins 为war包通过java命令运行,如下解决
1)关闭jenkins
2)通过如下命令运行Jenkins
java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar E:\jk\jenkins.war
-----3)192.168.30.231:8080/script下执行:---------------------------------------------是目前最有效的解决方式
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
2.修改jenkins端口
java -jar jenkins.war --httpPort=1080
3.jenkins插件下载地址
http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/plugins/
4.定义浏览器的启动和关闭及引用
1)在testcase中Setup栏中输入调用启动浏览器命令:
Run Keywords | Log | 启动浏览器... | AND | 启动浏览器 | AND | Log | 启动成功!!!
2)在testcase中Teardown栏中输入调用关闭浏览器命令:
关闭浏览器:Run Keywords | Log | 关闭浏览器... | AND | 关闭浏览器 | AND | Log | 关闭成功!!!
5.解决'Process leaked file descriptors. See http://wiki.jenkins-ci.org/display/JE NKINS/Spawning+proces错误的方案:
在jenkins脚本中执行:-Dhudson.util.ProcessTree.disable=true
6.编写python脚本时,报错:IndentationError:expected an indented block解决方法:
在编译时会出现这样的错IndentationError:expected an indented block说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行。
例如:往往有的人会疑问:我根本就没缩进怎么还是错,不对,该缩进的地方就要缩进,不缩进反而会出错,,比如:
if xxxxxx:
(空格)xxxxx
或者
def xxxxxx:
(空格)xxxxx
还有
for xxxxxx:
(空格)xxxxx
一句话 有冒号的下一行往往要缩进,该缩进就缩进
7.RFS运行中遇到“[ WARN ] Keyword 'Capture Page Screenshot' could not be run on failure: No browser is open”解决方法
打开Selenium2Library安装目录:C:\Python27\Lib\site-packages\robotframework_selenium2library-1.7.4-py2.7.egg\Selenium2Library\utils,进入utils目录,修改browsercache.py文件,将close(self)方法中的语句“browser.quit()”
修改为“browser.close()”。即可解决此问题。
8.jenkins里跑selenium webdriver,firefox浏览器不能打开
分析:如果是在jenkins里,选择 "execute windows batch command",配置 "python webtest.py"跑测试,这时候就会有问题,firefox浏览器并不会打开,但是后台有进程,webtest会在后台运行,但运行起来总是会有点问题
解决方法:
使用管理员权限 执行 sc delete jenkins 删除 Windows service
改用 java -jar jenkins.war,启动jenkins服务后,(有可能需要重新启动计算机后在command执行java -jar jenkins.war)在执行既可以解决
9.UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(128)
Something went wrong during the installation.See the error message above.
建议不要对RFS报告进行汉化,汉化后也会报此类问题。
解决方法:
打开C:\Python27\Lib下的 mimetypes.py 文件,在这行‘default_encoding = sys.getdefaultencoding()’前面添加三行:
if sys.getdefaultencoding() != 'gbk':
reload(sys)
sys.setdefaultencoding('gbk')
10.在DOS窗口下执行RFS自定义存放报告的路径:
格式:pybot.bat -d 存放日志和报告的路径 执行RFS脚本的路径
11.切换到新的网页的关键字 :select window 新打开的直接用new就好 回到主窗口是main
switch_to_alert()
execute javascript window.document.getElementById("logBegintime").value="2016-05-18" #日历起始内容
直接输入文字进行文字定位://a[contains(text(),'末页')]
js执行 window.scrollTo(0,1100) 页面就跳到最下面去了
get xpath count 模糊查
12.#控制滚动条js,最下,最上,最后
js="var q=document.documentElement.scrollTop=10000"
js_1="var q=document.documentElement.scrollTop=0"
js_2="var q=document.getElementById('gview_gridTable').scrollLeft=1000"
13.模拟键盘输入enter:
press key locator id
id = \\13 或者\\10
execute_script(js)
16.模态框处理
*** Settings ***
Library Selenium2Library
*** Test Cases ***
excample
[Tags] gggg
open browser http://www.robotframework.net/?/page/showModalDialogA ff #打开页面
sleep 2s
Execute Javascript setTimeout(function(){document.getElementById("aa").click()},100) \ #异步执行js来打开模态窗口
sleep 2s
select window title=showModalDialogB #切换到模态窗口
Input Text id=foo 测试输入内容正常 #输入内容
Click Button id=bb
sleep 2s
Select Window
${text} Get Text id=foo #切回主窗口
Should Be Equal ${text} 测试输入内容正常
[Teardown] Close All Browsers
17.处理弹出框上的取消和确定按钮
confirm action
Choose Cancel On Next Confirmation
Choose Ok On Next Confirmation
Get Window titles
get title
${refresh} confirm action
解决方案:
------1)如果你的Jenkins安装为windows服务,也就是下载的是.msi版本,如下解决
1)修改jenkins.xml如下
<arguments>-Xrs -Xmx256m -Dhudson.model.DirectoryBrowserSupport.CSP= -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
2)重启jenkins
-----2)Jenkins 为war包通过java命令运行,如下解决
1)关闭jenkins
2)通过如下命令运行Jenkins
java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar E:\jk\jenkins.war
-----3)192.168.30.231:8080/script下执行:---------------------------------------------是目前最有效的解决方式
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
2.修改jenkins端口
java -jar jenkins.war --httpPort=1080
3.jenkins插件下载地址
http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/plugins/
4.定义浏览器的启动和关闭及引用
1)在testcase中Setup栏中输入调用启动浏览器命令:
Run Keywords | Log | 启动浏览器... | AND | 启动浏览器 | AND | Log | 启动成功!!!
2)在testcase中Teardown栏中输入调用关闭浏览器命令:
关闭浏览器:Run Keywords | Log | 关闭浏览器... | AND | 关闭浏览器 | AND | Log | 关闭成功!!!
5.解决'Process leaked file descriptors. See http://wiki.jenkins-ci.org/display/JE NKINS/Spawning+proces错误的方案:
在jenkins脚本中执行:-Dhudson.util.ProcessTree.disable=true
6.编写python脚本时,报错:IndentationError:expected an indented block解决方法:
在编译时会出现这样的错IndentationError:expected an indented block说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行。
例如:往往有的人会疑问:我根本就没缩进怎么还是错,不对,该缩进的地方就要缩进,不缩进反而会出错,,比如:
if xxxxxx:
(空格)xxxxx
或者
def xxxxxx:
(空格)xxxxx
还有
for xxxxxx:
(空格)xxxxx
一句话 有冒号的下一行往往要缩进,该缩进就缩进
7.RFS运行中遇到“[ WARN ] Keyword 'Capture Page Screenshot' could not be run on failure: No browser is open”解决方法
打开Selenium2Library安装目录:C:\Python27\Lib\site-packages\robotframework_selenium2library-1.7.4-py2.7.egg\Selenium2Library\utils,进入utils目录,修改browsercache.py文件,将close(self)方法中的语句“browser.quit()”
修改为“browser.close()”。即可解决此问题。
8.jenkins里跑selenium webdriver,firefox浏览器不能打开
分析:如果是在jenkins里,选择 "execute windows batch command",配置 "python webtest.py"跑测试,这时候就会有问题,firefox浏览器并不会打开,但是后台有进程,webtest会在后台运行,但运行起来总是会有点问题
解决方法:
使用管理员权限 执行 sc delete jenkins 删除 Windows service
改用 java -jar jenkins.war,启动jenkins服务后,(有可能需要重新启动计算机后在command执行java -jar jenkins.war)在执行既可以解决
9.UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(128)
Something went wrong during the installation.See the error message above.
建议不要对RFS报告进行汉化,汉化后也会报此类问题。
解决方法:
打开C:\Python27\Lib下的 mimetypes.py 文件,在这行‘default_encoding = sys.getdefaultencoding()’前面添加三行:
if sys.getdefaultencoding() != 'gbk':
reload(sys)
sys.setdefaultencoding('gbk')
10.在DOS窗口下执行RFS自定义存放报告的路径:
格式:pybot.bat -d 存放日志和报告的路径 执行RFS脚本的路径
11.切换到新的网页的关键字 :select window 新打开的直接用new就好 回到主窗口是main
switch_to_alert()
execute javascript window.document.getElementById("logBegintime").value="2016-05-18" #日历起始内容
直接输入文字进行文字定位://a[contains(text(),'末页')]
js执行 window.scrollTo(0,1100) 页面就跳到最下面去了
get xpath count 模糊查
12.#控制滚动条js,最下,最上,最后
js="var q=document.documentElement.scrollTop=10000"
js_1="var q=document.documentElement.scrollTop=0"
js_2="var q=document.getElementById('gview_gridTable').scrollLeft=1000"
13.模拟键盘输入enter:
press key locator id
id = \\13 或者\\10
execute_script(js)
16.模态框处理
*** Settings ***
Library Selenium2Library
*** Test Cases ***
excample
[Tags] gggg
open browser http://www.robotframework.net/?/page/showModalDialogA ff #打开页面
sleep 2s
Execute Javascript setTimeout(function(){document.getElementById("aa").click()},100) \ #异步执行js来打开模态窗口
sleep 2s
select window title=showModalDialogB #切换到模态窗口
Input Text id=foo 测试输入内容正常 #输入内容
Click Button id=bb
sleep 2s
Select Window
${text} Get Text id=foo #切回主窗口
Should Be Equal ${text} 测试输入内容正常
[Teardown] Close All Browsers
17.处理弹出框上的取消和确定按钮
confirm action
Choose Cancel On Next Confirmation
Choose Ok On Next Confirmation
Get Window titles
get title
${refresh} confirm action
choose ok on next confirmation #点击确定按钮