首页 > 解决方案 > 我们如何在 python 中使用没有硒的 ChromeDriver、IEDriver、GeckoDriver?

问题描述

我正在寻找一种将网络驱动程序(ChromeDriver、IEDriver、GeckoDriver 等)与我的原生 python 应用程序一起使用的方法,这样,该应用程序将找出浏览器,并相应地选择驱动程序,并执行一些操作(比如点击一个元素或获取数据)。我想在不使用 selenium 的情况下在 python 中完成任务

标签: python-3.xautomationwebdriverselenium-chromedriver

解决方案


理论上可以在没有 Selenium 的情况下使用驱动程序可执行文件。所有 WebDriver 实现都使用相同的机制进行操作。该机制启动本地运行的 HTTP 服务器,并在一组众所周知的端点 (URL) 上侦听包含明确定义的 JSON 主体的 HTTP 请求。

甚至可以使用 cURL 之类的工具启动 WebDriver 实现IEDriverServer.exegeckodriver或者chromedriver使浏览器自动化,因此使用 Python HTTP 客户端库和 JSON 解析器当然是可能的。但是,这样做需要对与驱动程序通信时使用的协议有相当透彻的理解,而获得这种理解显然并非易事。事实上,使用该协议而不需要知道它的细节是 Selenium 存在的原因之一。

虽然你说你想做的是可能的,但我绝不会称之为推荐。尝试走这条路似乎需要付出很大的努力才能获得非常小的收益,当您考虑需要担心生成的可执行进程的生命周期、HTTP 请求主体的正确格式以及处理来自的所有潜在响应时远端。您将重新发明 Selenium 已经为您做的很多事情。您的问题没有显示您为什么不想使用 Selenium 的任何迹象,因此很难就您认为反对的事情的替代方案或缓解措施提供任何进一步的指导。


推荐阅读