应用开发

使用Selenium自动化Web浏览器

字号+作者:益华科技来源:IT科技类资讯2025-11-05 07:57:56我要评论(0)

Selenium 是浏览器自动化的***工具。使用 Selenium IDE,你可以录制命令序列如单击、拖动和输入),验证结果并最终存储此自动化测试供日后使用。这非常适合在浏览器中进行活跃开发。但是当

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

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

使用 Podman 运行 Selenium

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

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

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

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

在 Python 中使用 Selenium

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

from selenium.webdriver.common.desired_capabilities import DesiredCapabilitiesserver ="http://127.0.0.1:4444/wd/hub"driver = webdriver.Remote(command_executor=server, desired_capabilities=DesiredCapabilities.FIREFOX)print("Loading page...")driver.get("https://fedoramagazine.org/")print("Loaded")assert "Fedora" in driver.titledriver.quit()print("Done.")

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

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

FROM fedora:29RUN dnf -y install python3RUN pip3 install selenium

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

$ podman build -t selenium-python .

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

$ podman run -t --rm --network host \ -v $(pwd)/browser-test.py:/browser-test.py:z \ selenium-python python3 browser-test.py

输出看上去像这样:

Loading page...LoadedDone.

接下来做什么

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

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

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

清理

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

$ podman stop server$ podman rm server

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

$ podman rmi docker.io/selenium/standalone-firefox$ podman rmi selenium-python fedora:29

总结

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

b2b供应网

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 三星NX1855镜头的性能与特点(探索三星NX1855镜头的出色画质和创造性能)

    三星NX1855镜头的性能与特点(探索三星NX1855镜头的出色画质和创造性能)

    2025-11-05 07:20

  • 大咖plus电脑安装教程(大咖plus电脑安装教程、安装步骤、一步步完成安装)

    大咖plus电脑安装教程(大咖plus电脑安装教程、安装步骤、一步步完成安装)

    2025-11-05 06:56

  • 电脑投屏电视驱动错误的解决方法(解决电脑投屏电视时遇到的驱动错误问题)

    电脑投屏电视驱动错误的解决方法(解决电脑投屏电视时遇到的驱动错误问题)

    2025-11-05 05:31

  • 在 Windows 中把时间设置正确了过后,回到在 Ubuntu 后系统的时间又不一样了,在 Ubuntu中把时间设置正确后进入 Windows 后,时间又不一致了。    出现这种情况的原因是 Windows 和 Ubuntu它们在默认情况下看待硬件时间(主板上的BOIS显示的时间)的方式不一样。 知道了问题存在的原因,我们就来解决这个问题。这个是一个关于时间的问题,我们就先来了解一下关于时间的概念UTC即Universal Time Coordinated,协调世界时GMT即Greenwich Mean Time,格林尼治平时Windows 与 Linux 缺省看待系统硬件时间的方式是不一样的: * Windows把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS中显示的时间是一样的。 * Linux/Unix/Mac把硬件时间当作 UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬件时间+8。这 样,当PC中同时有多系统共存时,就出现了问题。假如你的 Ubuntu 和 Windows 中设置的时区都为北京时间东八区,而你在 Ubuntu中把当前系统时间更改为9:00AM。则此时硬件中存储的实际C时间是1:00AM。这时你重启进入Windows后,你会发现 windows系统中显示的时间是 1:00AM,比 Ubuntu 中慢了八个小时。同理,你在 Windows中更改或用网络同步了系统时间后,再到Ubuntu中去看,系统就会快了8小时。在实行夏令时的地区,情况可能会更复杂些。在ubunut下联网后时间还未能自动调整过来, 可用一下方法修改:让 Windows 把硬件时间当作 UTC开始->运行->CMD,打开命令行程序(Vista则要以管理员方式打开命令行程序方可有权限访问注册表),在命令行中输入下面命令并回车Reg add HKLMSYSTEMCurrentControlSetControlTimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1====================================================================Ubuntu中不使用UTC时间,而启用本地时间编辑/etc/default/rcS把其中的内容“UTC=yes”改成“UTC=no“,保存后重启系统就可以了

    在 Windows 中把时间设置正确了过后,回到在 Ubuntu 后系统的时间又不一样了,在 Ubuntu中把时间设置正确后进入 Windows 后,时间又不一致了。    出现这种情况的原因是 Windows 和 Ubuntu它们在默认情况下看待硬件时间(主板上的BOIS显示的时间)的方式不一样。 知道了问题存在的原因,我们就来解决这个问题。这个是一个关于时间的问题,我们就先来了解一下关于时间的概念UTC即Universal Time Coordinated,协调世界时GMT即Greenwich Mean Time,格林尼治平时Windows 与 Linux 缺省看待系统硬件时间的方式是不一样的: * Windows把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS中显示的时间是一样的。 * Linux/Unix/Mac把硬件时间当作 UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬件时间+8。这 样,当PC中同时有多系统共存时,就出现了问题。假如你的 Ubuntu 和 Windows 中设置的时区都为北京时间东八区,而你在 Ubuntu中把当前系统时间更改为9:00AM。则此时硬件中存储的实际C时间是1:00AM。这时你重启进入Windows后,你会发现 windows系统中显示的时间是 1:00AM,比 Ubuntu 中慢了八个小时。同理,你在 Windows中更改或用网络同步了系统时间后,再到Ubuntu中去看,系统就会快了8小时。在实行夏令时的地区,情况可能会更复杂些。在ubunut下联网后时间还未能自动调整过来, 可用一下方法修改:让 Windows 把硬件时间当作 UTC开始->运行->CMD,打开命令行程序(Vista则要以管理员方式打开命令行程序方可有权限访问注册表),在命令行中输入下面命令并回车Reg add HKLMSYSTEMCurrentControlSetControlTimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1====================================================================Ubuntu中不使用UTC时间,而启用本地时间编辑/etc/default/rcS把其中的内容“UTC=yes”改成“UTC=no“,保存后重启系统就可以了

    2025-11-05 05:11

网友点评
热门资讯