Selenium2Library源码解析与扩展(一)

本文详细解析了Selenium2Library的部分源码,包括_browsermanagement.py中的浏览器管理操作,如create_webdriver()和select_window()。讨论了locator解析原理和常见定位方法,以及如何使用javascript解决Selenium自动化测试中的复杂问题。文中还提供了扩展库SeleniumExtend的使用方法,并给出了实际示例,展示了如何提高脚本的稳定性和可读性。
摘要由CSDN通过智能技术生成

一直觉得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-
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值