关注分享主机优惠活动
国内外VPS云服务器

你不能错过的自动化测试框架:robotframework的WebDriver功能配置(自动化测试框架工具)

总结:使用图将浏览器语言设置为英语。 有关如何将浏览器语言设置为英语的图表。 方法。 结果函数。 该功能最常见的用途是防止网站检测和阻止爬虫等自动化程序。

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,以及对应功能的参数列表,以及常用的配置方法。 如果我能帮助您完成自动化测试过程,我会很高兴~

未经允许不得转载:主机频道 » 你不能错过的自动化测试框架:robotframework的WebDriver功能配置(自动化测试框架工具)

相关推荐

评论 抢沙发

评论前必须登录!