加入收藏 | 设为首页 | 会员中心 | 我要投稿 广州站长网 (https://www.020zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

使用 Selenium 自动化 Web 浏览器 | Linux 中国

发布时间:2022-10-31 17:00:59 所属栏目:Linux 来源:转载
导读:
Selenium 是浏览器自动化的绝佳工具。使用 Selenium IDE,你可以录制命令序列(如单击、拖动和输入),验证结果并最终存储此自动化测试供日后使用。-- Lennart Jern
有用的原文链接请访问

linux 浏览网站命令行_linux浏览器_linux 系统日志查看器

Selenium 是浏览器自动化的绝佳工具。使用 Selenium IDE,你可以录制命令序列(如单击、拖动和输入),验证结果并最终存储此自动化测试供日后使用。-- Lennart Jern

有用的原文链接请访问文末的“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。

致谢编译自|

作者|Lennart Jern

译者|geekpi 共计翻译:841.5篇 贡献时间:1865 天

Selenium[1]是浏览器自动化的绝佳工具。使用 Selenium IDE,你可以录制命令序列(如单击、拖动和输入),验证结果并最终存储此自动化测试供日后使用。这非常适合在浏览器中进行活跃开发。但是当你想要将这些测试与 CI/CD 流集成时,是时候使用 Selenium WebDriver 了。

WebDriver 公开了一个绑定了许多编程语言的 API,它允许你将浏览器测试与其他测试集成。这篇文章向你展示了如何在容器中运行 WebDriver 并将其与 Python 程序一起使用。

使用 Podman 运行 Selenium

Podman 是下面例子的容器运行时。有关如何开始使用 Podman 的信息,请参见此前文章[2]。

此例使用了 Selenium 的独立容器,其中包含 WebDriver 服务器和浏览器本身。要在后台启动服务器容器,请运行以下命令:

  1. $ podman run -d --network host --privileged --name server docker.io/selenium/standalone-firefox

当你使用特权标志和主机网络运行容器时,你可以稍后从在 Python 中连接到此容器。你不需要使用sudo。

在 Python 中使用 Selenium

现在你可以提供一个使用此服务器的简单程序。这个程序很小,但应该会让你知道可以做什么:

  1. from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

  2. server ="http://127.0.0.1:4444/wd/hub"

  3. driver = webdriver.Remote(command_executor=server,

  4. ? ?desired_capabilities=DesiredCapabilities.FIREFOX)

  5. print("Loading page...")

  6. driver.get("https://fedoramagazine.org/")

  7. print("Loaded")

  8. assert "Fedora" in driver.title

  9. driver.quit()

  10. print("Done.")

首先,程序连接到你已经启动的容器。然后它加载 Fedora Magazine 网页并判断 “Fedora” 是页面标题的一部分。最后,它退出会话。

需要 Python 绑定才能运行此程序。既然你已经在使用容器了,为什么不在容器中这样做呢?将以下内容保存到 Dockerfile 中:

  1. FROM fedora:29

  2. RUN dnf -y install python3

  3. RUN pip3 install selenium

然后使用 Podman 在与 Dockerfile 相同的文件夹中构建容器镜像:

  1. $ podman build -t selenium-python .

要在容器中运行程序,在运行容器时将包含 Python 代码的文件作为卷挂载:

  1. $ podman run -t --rm --network host \

  2. -v $(pwd)/browser-test.py:/browser-test.py:z \

  3. selenium-python python3 browser-test.py

输出看上去像这样:

  1. Loading page...

  2. Loaded

  3. Done.

接下来做什么

上面的示例程序是最小的,也许没那么有用。但这仅仅是最表面的东西!查看Selenium[3]和Python 绑定[4]的文档。在那里,你将找到有关如何在页面中查找元素、处理弹出窗口或填写表单的示例。拖放也是可能的,当然还有等待事件。

在实现一些不错的测试后,你可能希望将它们包含在 CI/CD 流程中。幸运的是,这是相当直接的linux浏览器,因为一切都是容器化的。

你可能也有兴趣设置grid[5]来并行运行测试。这不仅有助于加快速度,还允许你同时测试多个不同的浏览器。

清理

当你容器使用完后,可以使用以下命令停止并删除独立容器:

  1. $ podman stop server

  2. $ podman rm server

如果你还想释放磁盘空间,请运行以下命令删除镜像:

  1. $ podman rmi docker.io/selenium/standalone-firefox

  2. $ podman rmi selenium-python fedora:29

总结

在本篇中,你已经看到使用容器技术开始使用 Selenium 是多么容易。它允许你自动化与网站的交互,以及测试交互。Podman 允许你在没有超级用户权限或 Docker 守护程序的情况下运行所需的容器。最后,Python 绑定允许你使用普通的 Python 代码与浏览器进行交互。

via:

作者:Lennart Jern[7]选题:lujun9972译者:geekpi校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

(编辑:广州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!