一直觉得Selenium2Library对selenium的封装很赞,最近模拟它的结构封装给一个同事写了个C# selenium的demo,过程中看了细看了一部分源码。加上之前封装的内容,分享一波。
注1:以下涉及到RF的脚本全未加延时sleep,如需调试验证,请自行添加;
扩展包地址:
https://github.com/daassh/SeleniumExtend
使用方法:
不再导入Selenium2Library,而是导入此文件。
_browsermanagement.py
主要是处理浏览器的一些初始化操作,如浏览器打开、关闭等。
create_webdriver()
创建一个webdriver。如需加载用户当前浏览器配置,则可用下面这方法(路径对应修改):
SuiteSetup
[Documentation] 初始化
${
chrome_options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
Call Method ${
chrome_options} add_argument --user-data-dir\=C:/Users/dassh/AppData/Local/Google/Chrome/User Data
Create Webdriver Chrome chrome_options=${
chrome_options}
Maximize Browser Window
select_window()
切换至指定标签页,返回切换前页面的句柄。相信很多人用得稀里糊涂,以下是标准用法示例:
Go To http://www.58.com
Click Element link=防网络诈骗
Click Element link=关于我们
${now_title}= Get Title #当前title仍是'58首页'
${handle_main}= Select Window 打击网络诈骗
${now_title}= Get Title #当前title变为'打击网络诈骗'
${handle_cheat}= Select Window 关于58同城
${now_title}= Get Title #当前title变为'关于58同城'
${handle_about}= Select Window ${handle_main}
${now_title}= Get Title #当前title变为'58首页'
Input Text id=keyword 测试 #'58首页'搜索框输入'测试'
Robot Framework log:
20160410 19:38:20.077 : INFO : Opening url 'http://www.58.com'
20160410 19:38:22.668 : INFO : Clicking element 'link=防网络诈骗'.
20160410 19:38:23.395 : INFO : Clicking element 'link=关于我们'.
20160410 19:38:25.405 : INFO : ${now_title} = 【58同城 58.com】南昌分类信息 - 本地 免费 高效
20160410 19:38:41.237 : INFO : ${handle_main} = CDwindow-2131AEEE-68E1-414C-9347-CECB2AC34EBE
20160410 19:38:41.247 : INFO : ${now_title} = 打击网络诈骗
20160410 19:38:41.276 : INFO : ${handle_cheat} = CDwindow-18737670-EE2D-46C4-BFD2-BA43EB426544
20160410 19:38:41.283 : INFO : ${now_title} = 关于58同城
20160410 19:38:41.297 : INFO : ${handle_about} = CDwindow-