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就行了。