robot framework笔记(二):在RF中自定义chrome启动参数
(一)在RF中自定义chrome启动参数
这里主要是实现下面2个功能
1、禁用chrome正受自动测试软件控制的提示
2、设置默认的下载路径(一些导出、下载类的功能,将文件下载到指定路径下)
自定义一个关键字
from selenium.webdriver.chrome.options import Options
class MyKeyword():
def get_chrome_options(self,downloads_path):
'''
自定义chrome启动参数
:param downloads_path: 设置默认的文件下载路径
:return:
'''
chrome_options = Options()
prefs = {
"download.default_directory":str(downloads_path),
}
chrome_options.add_experimental_option('prefs',prefs) #设置默认的文件下载路径
chrome_options.add_argument('disable-infobars') #chrome76以下禁用chrome受自动软件控制
#下面2行chrome76及以上禁用chrome受自动软件控制
chrome_options.add_experimental_option("useAutomationExtension", False)
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
return chrome_options
在RF的登录中引用这个自定义的关键字,执行的时候如果提示找不到关键字GET CHROME OPTIONS,加一个环境变量PYTHONPATH, value就是python project的路径。
*** Settings ***
Library SeleniumLibrary
Library mykeyword.mykeyword.MyKeyword
Suite Teardown CLOSE BROWSER *** Variables ***
${browser} Chrome
${login_url} https://account.cnblogs.com/signin *** Test Cases ***
登录-XXXXXX
登录-打开浏览器并进入登录页面 *** Keywords ***
登录-打开浏览器并进入登录页面
${options}= GET CHROME OPTIONS D:/projectname/testdata/downloads
CREATE WEBDRIVER ${browser} chrome_options=${options}
GO TO ${login_url}
SET SELENIUM IMPLICIT WAIT 10
MAXIMIZE BROWSER WINDOW
整体的目录结构如下:

(二)如果要在实际项目中使用selenium grid
如果要在实际项目中使用selenium gird,可以在上面的基础上稍微修改下。这里必须在继承SeleniumLibrary库的基础上进行修改,我再下篇说明吧。
(三)python 的pythonpath
最后简单说明下,python有个搜索路径的概念,如果提示no keyword,而你又确实写了这个关键字,那么可能是库不在python的搜索路径里面。
通过 import sys sys,path 可以看到自己的搜索路径有哪些。
没有的话就新建一个环境变量,名称:PYTHONPATH 值:工程的路径。 环境变量加好后,重启下IDE就行了。
robot framework笔记(二):在RF中自定义chrome启动参数的更多相关文章
- robot framework笔记(三):扩展SeleniumLibrary库 (自定义关键字)
(一)自定义和浏览器相关的关键字 以下代码GitHub 版本库地址: https://github.com/blairwind/blog_rf SeleniumLibrary的扩展文档中提供了3种增加 ...
- robot framework 笔记(三),RF安装
背景: 本来robot framework的安装应该放在一开始写的,因写博客的时候已经装过了,恰巧重装系统又重装了一遍RF RF推荐使用python2, 使用3的话会遇到一些页面非友好的问题 需要的安 ...
- robot framework 笔记(一)
背景: 平时使用rf时会用到一些方法,长时间不用就会忘记,本文用来记录当做自己的小笔记 内容持续更新中········ 一.robot framework 大小写转换 1.转换小写: ${low} E ...
- Robot Framework(13)- RF 循环的详细使用
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 RF用 ...
- Robot Framework问题汇总...不断更新中
在实际使用Robot Framework工具过程中,难免会遇到一些问题, 我们将会一一记录下来,以便后来者碰到类似的问题能够快速解决! 安装类问题: ========================= ...
- robot framework学习二-----元素定位
文章摘自:https://www.cnblogs.com/fnng/p/3901391.html 不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot fram ...
- 学习Spring Boot:(十二)Mybatis 中自定义枚举转换器
前言 在 Spring Boot 中使用 Mybatis 中遇到了字段为枚举类型,数据库存储的是枚举的值,发现它不能自动装载. 解决 内置枚举转换器 MyBatis内置了两个枚举转换器分别是:org. ...
- Robot Framework自动化测试二(元素定位)
前言 在学习的过程中,可能会误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加 ...
- Robot Framework(二)测试数据语法
2.1.1文件和目录 测试数据的层次结构安排如下: 测试数据在测试数据文件中创建. 测试数据文件会自动创建一个包含该文件中的测试数据的测试套件. 包含测试数据文件的目录构成了更高级别的测试套件.这样的 ...
随机推荐
- java String 转Json报错 java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntim
这个问题就是缺少jar包依赖!!! java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean 缺少commons-be ...
- [LeetCode] 114. Flatten Binary Tree to Linked List 将二叉树展平为链表
Given a binary tree, flatten it to a linked list in-place. For example, given the following tree: 1 ...
- [LeetCode] 636. Exclusive Time of Functions 函数的独家时间
Given the running logs of n functions that are executed in a nonpreemptive single threaded CPU, find ...
- RAID磁盘阵列结构
RAID磁盘阵列结构原理其实很简单,就是每块硬盘不插在主板的硬盘接口上了,而是全插在RAID卡上,然后RAID卡再插到主板上,由RAID卡统一管理硬盘,做各种RAID磁盘策略(RAID0,RAID1, ...
- 【C/C++开发】C++实现字符串替换的两种方法
替换字符串replace() erase() //C++ 第一种替换字符串的方法用replace()|C++ 第二种替换字符串的方法用erase()和insert()[ C++string|C++ r ...
- springboot统一返回json数据格式并配置系统异常拦截
本文链接:https://blog.csdn.net/syystx/article/details/82870217通常进行前后端分离开发时我们需要定义统一的json数据交互格式并对系统未处理异常进行 ...
- canal部署启动的时候报错com.alibaba.druid.pool.DruidDataSource - testWhileIdle is true, validationQuery not set
报错信息:com.alibaba.druid.pool.DruidDataSource - testWhileIdle is true, validationQuery not set 解决方法: 找 ...
- C++和C API调用
c++是C的超集,不可避免的要兼容C的特性,C++在C基础山的拓展部分叫做C with class,同时C++有自己特有的属性比如模板template. C并不完全是C++的子集. 那么如何在C/C+ ...
- 通过LxRunOffline迁移Win10的Linux子系统
默认情况WSL装在系统盘(C:),重装系统怎么办?C盘空间不足怎么办?能修改WSL安装路径吗? 当然可以,使用LxRunOffline不仅能修改WSL安装路径,还能备份WSL.还原WSL…… 修改WS ...
- Charles手机代理设置
Charles工具 手机 方法/步骤 1.打开Charles 点击Proxy,选择proxy settings,输入端口8888 打开电脑,在cmd中输入ipconfig,查看本地 ...