总结:使用图将浏览器语言设置为英语。 有关如何将浏览器语言设置为英语的图表。 方法。 结果函数。 该功能最常见的用途是防止网站检测和阻止爬虫等自动化程序。
rf(robotframework)是自动化测试常用的框架之一。 在前端自动化测试中经常与webdriver驱动和RF的selenium2library库一起使用。 selenium2library 提供的关键字(例如打开浏览器、关闭浏览器、单击元素等)对于测试人员创建前端自动化用例非常有用。
创建前端自动化用例时的首要原则是模仿用户习惯,即执行“点击” ”。 执行浏览器“下拉”、“滑动”等动作,看看浏览器返回的响应是否符合用户的期望。 然而,前端自动化测试过程中经常会遇到需要配置浏览器才能更快、更可靠地运行测试用例的情况。 例如,配置浏览器绕过 https 身份验证、配置浏览器窗口大小、配置无头浏览器在 Linux 环境中运行以及配置浏览器以方便检索下载文件的用例。 。 让我们从问题开始,谈谈 rf 在创建自动化用例以及使用 Webdriver 启动浏览器时可以进行的配置。
首先,让我们看看一些常见问题
1. 如何启动无界面浏览器进行自动化测试?回答这个问题
这个问题很简单,大家应该都知道。 只需在启动浏览器时添加参数 -headless 和 -no-sandbox 即可。 --headless 意味着启动没有界面的浏览器。 --no-sandbox 表示禁用沙箱模式。 如果在-headless模式下不添加-no-sandbox,会有提示。错误表明 DevToolsActivePort 文件不存在。
2) rf 示例
让我们看看 rf 如何使用 --headless 和 --no-sandbox 参数。 RF启动浏览器向selenium2library提供两个参数:打开浏览器并创建Web驱动程序。 一个打开的浏览器可以被认为是 create webdriver 和 go to {url} 方法的联合实例,它允许您快速启动浏览器实例并跳转到指定的 {url}。
这里讨论最简单最常用的添加-headless和-no-sandbox来启动浏览器的方法。 如下图 1 所示,open browser 关键字提供了两个参数来启动无界面 Chrome 和 Firefox 浏览器:headlesschrome 和 headlessfirefox。 要启用沙盒模式(如果已禁用),请使用 options=add_argument('—no-sandbox')。 。
图1 rf启动无界面浏览器模式
2. 如何绕过?
1) 问题与解答
当您访问 https://... 链接时,您通常会看到如下图 2 所示的安全提示。 这是常用的方法。 用于手动操作。 有两种类型。 一种方法是在浏览器中设置相应网站的安全凭证。 配置完成后,再次访问网站时将不再出现安全提示。 另一个选项是单击继续 xxx(不安全),如图 2 所示。 这表明用户知道不安全的访问模式。
自动化过程还允许您上传证书进行身份验证。 然而,为了简单起见,常见的做法是跳过安全身份验证。 使用--ignore-certificate-errors可以忽略浏览器的安全证书错误提示,类似于点击Continue to xxx(不安全)。
图2 https安全提示示例
2)RF示例
这个方法与1类似。 只需在打开的浏览器中启动浏览器时传递 add_argument("--ignore-certificate-errors") 即可,如下图 3 所示。
图3 rf跳过https安全提示
3.如何更改下载目录?
1)问题与解答
当Webdriver启动浏览器实例进行测试时,浏览器下载文件时,您经常需要对下载的文件进行比较和查看。 操作。 然而,浏览器的下载目录通常是默认配置。 在无界面模式下,将浏览器的下载目录设置为所需的目录是非常困难的。 目前,您可能需要这样的参数配置:download.default_directory=${your_download_path}。
2) rf 示例
使用打开的浏览器的desired_capablilities 来{"goog:chromeOptions": {"prefs": 如下图4 所示{"download. default_directory" : "D://Software//common"}}} 参数将浏览器的下载目录设置为 D:/Software/common。
图4 RF配置浏览器下载目录
RF运行时启用截图将会是。 在浏览器窗口中检查下载目录并将其正确设置为D:/Software/common。
图5 RF配置浏览器下载目录结果
问题展开
前端自动化实现过程中经常会用到开放式浏览器。如前所述在上面的三个问题中,1 和 2 是常见问题,而 3 可能不太常用。但是,在上面的示例中,您正在更改浏览器中的参数,您是否知道有两种方法可以扩展。
那么,你知道如何使用这两个参数吗?
或者,你知道如何更改浏览器的下载目录吗?通过 options 传递参数,如下所示 k4]align:center;">
图 6 rf 设置浏览器下载目录(使用 options 参数)。
接下来,我们会扩展rf webdriver并更好的理解选项配置,我们以chromedriver为例~
1.chromedriver的功能配置是什么?
Features是ChromeDriver的功能可用于定制和配置的选项,例如上例中的无界面配置-headless、禁用沙箱模式--沙箱等。
2. chromedriver 函数列表。
下面列出了一些常用的函数,可以通过options或者desired_capablility参数来配置。
1)args函数
参数值类型:字符串列表。默认设置:否。
此函数是启动 Chrome 时使用的常用 args 参数列表。 –user-data-dir=”[PATH]”:您可以指定。用户文件夹的用户数据路径,用于将书签等用户数据保存在文件夹以外的分区中。 系统分区。
--disk-cache-dir="[PATH]":指定缓存路径。
–disk-cache-size=:指定缓存大小(以字节为单位)。 ;
——首次运行:重置为初始状态并首次运行。
–disable-javascript:禁用 Javascript。
- -user-agent="xxxxxxxx":更改 HTTP 请求标头中的代理字符串。
--disable-plugins:禁用所有插件的加载。 您可以提高速度;
--start-maximize: 启动时最大化'
--lang=zh[ k4]CN 语言为简体中文
....
有关其他 Chrome 参数列表,请参阅 https://peter.sh/experiments/chromium-command 请参阅 -。 ] 行 - 开关/。
2)二元函数
参数值类型:字符串。 是默认设置的吗?
Chrome 可执行文件的使用路径。
3)扩展
参数值类型:字符串列表。 是否配置 默认:否。
启动时安装的 Chrome 扩展程序列表。 列表中的每个项目都必须是 base-64 编码和打包的 Chrome 扩展程序 (.crx)。
4)localState函数
参数值类型:字典。 是默认设置的吗?
5) prefs 函数
参数值类型:字典。 是否配置 默认:否。
这些设置仅适用于当前用户配置文件。 可以在本地/Google/Chrome/US 找到呃,数据/默认/设置?显示“设置”文件。 例如示例3中的浏览器下载设置在配置文件中设置如下:
6) 分离函数
参数值类型:Boolean。 是否默认配置:是,默认值为false。
如果为 false,ChromeDriver 被终止时 Chrome 就会退出,无论会话是否结束。 如果为 true,Chrome 将仅在会话结束(或关闭)时退出。 请注意,如果为 true,则在会话未终止的情况下,ChromeDriver 无法清理正在运行的 Chrome 实例使用的临时用户数据目录。
7) DebuggerAddress函数
参数值类型:字符串。 是否配置 默认:否。
要连接的 Chrome 调试器服务器的地址(例如“127.0.0.1:38947”)。
8)excludeSwitches函数
参数值类型:字符串列表。 是否配置 默认:否。
9)minidumpPath函数
参数值类型:字符串。 是默认设置的吗?
小型转储存储目录仅在 Linux 平台上使用。
10) mobileEmulation函数
参数值类型:字典。 是否配置 默认:否。
11) perfLoggingPrefs 函数
参数值类型:字典。 是否配置 默认:否。
指定性能日志记录设置。
12) windowTypes函数
参数值类型:字符串列表。 是否配置 默认:否。
窗口句柄列表中显示的窗口类型列表。
3.如何使用chrome驱动配置功能
rf 允许您使用打开的浏览器的选项或desired_capablilities 参数来配置功能。 但请注意,desired_capability参数要求传入值采用字典格式,选项采用字符串格式。
请参阅前面的示例以获取示例。 另外,我将选择 chromedriver 函数列表的一部分作为部分示例。
1)args函数
args函数有三种方式在浏览器启动时添加功能。 例如,更改浏览器语言并将浏览器语言设置为英语。
·options=add_argument('—lang=en')
图6 设置方法rf浏览器语言转英语1
·注意:add_argument方法仅适用于https://peter.sh/experiments/中的参数。 使用 chromium-command-line-switches/ 列表中的参数。 对于未列出的任何参数,请调用 selenium.webdriver.chrome.options 中的 add_experimental_option 方法添加参数并将其传递给选项。 你可以参考一下图。 显示 7.
·desired_capability= 使用 {"goog:chromeOptions": {"args":["--lang=en"]}}
图7 如何设置浏览器语言为英文3
图8 通过rf设置浏览器语言英文方式的结果
2)excludeSwitches 函数
该函数最常见的用途是用它来防止网站检测和阻止爬虫等自动化 Selenium 程序。 例如,如果此功能不适用,当您使用 Selenium 启动浏览器时,您将在浏览器顶部看到“Chrome 由自动化测试软件控制”。 您可以通过将 exceptSwitches 值设置为 Enable-automation 来启用该功能,以避免被自动化测试软件检测到。
选择上面的第三种方法,通过desired_capablities为rf use case设置Enable-automation,以启用自动避免测试软件检测方法。 图10显示了执行结果。
图9 启用射频设置-自动化方法
图10 rf配置enable-automation执行结果
最后
本文主要是在启动时使用我们将介绍一个可以浏览一些配置功能的Webdriver,以及对应功能的参数列表,以及常用的配置方法。 如果我能帮助您完成自动化测试过程,我会很高兴~
评论前必须登录!
注册