当前位置: 首页 > 科技观察

使用Selenium自动化Web浏览器_0

时间:2023-03-15 00:32:13 科技观察

Selenium是浏览器自动化的绝佳工具。使用SeleniumIDE,您可以记录单击、拖动和键入等命令序列,验证结果并最终存储此自动化测试以备后用。这对于在浏览器中进行主动开发非常有用。但是,当您想要将这些测试与您的CI/CD流程集成时,就该使用SeleniumWebDriver了。WebDriver公开了一个绑定到许多编程语言的API,允许您将浏览器测试与其他测试集成。这篇文章向您展示了如何在容器中运行WebDriver并将其与Python程序一起使用。使用Podman运行SeleniumPodman是以下示例的容器运行时。有关如何开始使用Podman的信息,请参阅上一篇文章。此示例使用Selenium的独立容器,其中包含WebDriver服务器和浏览器本身。要在后台启动服务器容器,请运行以下命令:$podmanrun-d--networkhost--privileged--nameserverdocker.io/selenium/standalone-firefox主机网络,你可以稍后从Python中连接到这个容器。您不需要使用sudo。在Python中使用Selenium现在您可以提供一个使用此服务器的简单程序。这个程序很小,但应该让您了解可以做什么:fromselenium.webdriver.common.desired_capabilitiesimportDesiredCapabilitiesserver="http://127.0.0.1:4444/wd/hub"driver=webdriver.Remote(command_executor=server,desired_capabilities=DesiredCapabilities.FIREFOX)print("Loadingpage...")driver.get("https://fedoramazine.org/")print("Loaded")在driver.titledriver中声明“Fedora”.quit()print("Done.")首先,程序连接到您已启动的容器。然后加载FedoraMagazine网页并确定“Fedora”是页面标题的一部分。***,退出会话。运行此程序需要Python绑定。既然您已经在使用容器,为什么不在容器中这样做呢?将以下内容保存到Dockerfile中:FROMfedora:29RUNdnf-yinstallpython3RUNpip3installselenium然后使用Podman在与Dockerfile相同的文件夹中构建容器镜像:$podmanbuild-tselenium-python。要在容器中运行程序,请在运行容器时将包含Python代码的文件挂载为卷:$podmanrun-t--rm--networkhost\-v$(pwd)/browser-test.py:/browser-test.py:z\selenium-pythonpython3browser-test.py输出如下所示:Loadingpage...LoadedDone。下一步做什么上面的示例程序是最小的,可能不是很有用。但这只是最表面的东西!查看Selenium和Python绑定的文档。您将在其中找到有关如何在页面中查找元素、处理弹出窗口或填写表单的示例。拖放也是可以的,当然还要等待事件。在实施一些不错的测试后,您可能希望将它们包含在您的CI/CD过程中。幸运的是,这相当简单,因为所有内容都是容器化的。您可能还对设置网格以并行运行测试感兴趣。这不仅有助于加快速度,还允许您同时测试多个不同的浏览器。清理当您使用完容器后,您可以使用以下命令停止并删除单个容器:$podmanstopserver$podmanrmserver如果您仍想释放磁盘空间,请运行以下命令删除映像:$podmanrmidocker.io/selenium/standalone-firefox$podmanrmiselenium-pythonfedora:29总结在本文中,您已经看到通过容器技术开始使用Selenium是多么容易。它允许您自动化与网站的交互,以及测试交互。Podman允许您在没有超级用户权限或Docker守护进程的情况下运行所需的容器。***,Python绑定允许您使用纯Python代码与浏览器交互。