在robotframework中,使用selenium库,无头模式

目前使用python2.7(请勿鄙视,公司环境,无法使用python3)+ robot framework,做功能测试的自动化。 今天需要使用selenium进行web页面的操作,记录如下

 

安装selenium2Library库

使用pip安装,过程是简单: pip install robotframework-selenium2Library

 

无头模式

其他的使用方式这里就不说了,只说怎么实现浏览器的无头模式

常用的Open Browser关键字,无法在本地实现无头模式(如果有错误,请指出),因为其最终调用的函数是

    def _make_ff(self , remote , desired_capabilites , profile_dir):

        if not profile_dir: profile_dir = FIREFOX_PROFILE_DIR
        profile = webdriver.FirefoxProfile(profile_dir)
        if remote:
            browser = self._create_remote_web_driver(webdriver.DesiredCapabilities.FIREFOX  ,
                        remote , desired_capabilites , profile)
        else:
            browser = webdriver.Firefox(firefox_profile=profile)
        return browser

我们可以看到,对于本地浏览器来说,创建Firefox实例时,仅用了profile参数,无法将无头参数传入,因为无头参数需要在options或者firefox_options参数中传入。可以看下面Firefox对象的__init__函数:

<
<think>根据用户的问题,用户希望了解如何在Robot Framework使用Playwright编写一个简单的打开浏览器的测试用例。结合提供的引用内容,特别是引用[3]和引用[4],我们可以知道Robot Framework与Playwright的结合使用以及一些注意事项。 步骤: 1. 首先,需要安装必要的Robot Framework本身、Browser library(Playwright的Robot Framework封装)以及Playwright。 2. 编写测试用例,包括打开浏览器、访问网址、关闭浏览器等基本步骤。 参考引用[3]中的注意事项:Robot Framework会在Suite启动时实例化Library,因此不能创建多个Browser或Sync Playwright对象,以避免错误。 下面是一个简单的示例: **安装步骤**(在命令行中执行): ```bash pip install robotframework pip install robotframework-browser rfbrowser init # 初始化Playwright浏览器环境 ``` **编写测试用例文件**(例如`open_browser.robot`): ```robotframework *** Settings *** Library Browser *** Test Cases *** 打开浏览器示例 # 使用Chromium浏览器打开百度首页 New Browser chromium headless=False New Context New Page https://www.baidu.com # 验证页面标题 Get Title == 百度一下,你就知道 # 关闭浏览器 Close Browser ``` **解释**: - `New Browser`: 指定浏览器类型(chromium, firefox, webkit)和是否无头模式(headless)。 - `New Context`: 创建一个新的浏览器上下文(类似于隐身会话)。 - `New Page`: 在上下文中打开一个新页面,并导航到指定URL。 - `Get Title`: 获取当前页面标题,并进行断言(这里预期标题为“百度一下,你就知道”)。 - `Close Browser`: 关闭浏览器。 注意:如果需要在不同设备上模拟,可以参考引用[2]中的设备模拟,但上述示例是最基本的。 **执行测试**: 在命令行中运行: ```bash robot open_browser.robot ``` **相关问题**: 1. 如何在Robot Framework Playwright中模拟移动设备打开网页? 2. 如何对页面元素进行操作(如点击、输入)? 3. 如何设置超时等待以避免元素未加载导致的失败?</think>### Robot Framework Playwright 打开浏览器测试用例编写指南 在Robot Framework使用Playwright编写打开浏览器的测试用例,主要步骤如下: #### 1. 环境准备 首先确保已安装必要组件: ```bash pip install robotframework pip install robotframework-browser rfbrowser init # 初始化Playwright浏览器环境 ``` #### 2. 测试用例编写 创建 `.robot` 文件(如 `open_browser.robot`): ```robotframework *** Settings *** Library Browser *** Test Cases *** 打开浏览器示例 # 使用Chromium浏览器打开百度 New Browser chromium headless=False New Context New Page https://www.baidu.com # 验证页面标题 Get Title == 百度一下,你就知道 # 关闭浏览器 Close Browser ``` #### 3. 关键参数说明 - **浏览器类型**:`chromium`/`firefox`/`webkit` - **无头模式**:`headless=False` 显示可视化浏览器 - **设备模拟**(参考引用[2]): ```robotframework New Context viewport={'width': 390, 'height': 844} # iPhone 12 Pro尺寸 ``` #### 4. 执行测试 ```bash robot open_browser.robot ``` #### 5. 注意事项 1. **单例对象管理**(参考引用[3]): - 避免在多个测试用例中重复创建浏览器实例 - 推荐使用Suite Setup/Teardown统一管理: ```robotframework *** Settings *** Suite Setup Open Browser Suite Teardown Close Browser *** Keywords *** Open Browser New Browser chromium headless=True ``` 2. **Playwright优势**(参考引用[4]): - 自动等待机制减少`Wait`关键字使用 - 双向通信确保浏览器状态可控 - 支持跨浏览器测试和移动设备模拟 #### 6. 完整示例(带设备模拟) ```robotframework *** Settings *** Library Browser *** Test Cases *** iPhone模拟测试 New Browser webkit New Context viewport={'width': 390, 'height': 844} New Page https://m.baidu.com Get Title should contain 百度 Take Screenshot filename=iphone_view.png # 截图功能(参考引用[2]) ``` [^1]: 集成Selenium与Jenkins的兼容性设计 [^2]: Playwright的设备模拟和截图功能 [^3]: Robot Framework单例对象管理要求 [^4]: Playwright的自动等待和通信优势
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值