【问题标题】:How can we use ChromeDriver, IEDriver, GeckoDriver without selenium in python?我们如何在 python 中使用没有硒的 ChromeDriver、IEDriver、GeckoDriver?
【发布时间】:2019-09-06 12:16:18
【问题描述】:

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

【问题讨论】:

  • 这是不可能的。 ChromeDriver 等。 al,是 Selenium WebDriver 的产品。为什么你不想使用 Selenium?如果您正在测试 Web 应用程序并需要多浏览器支持,那么它就是您可以使用的工具。 Selenium 支持 Python。
  • 有没有其他方式可以与浏览器交互以实现自动化?我的意思是像 UI Path 这样的工具不会使用 selenium,我也希望从头开始制作一些东西。如果您能提供解决方案,那就太好了。到目前为止,我实施的唯一解决方案是为检查和单击等活动创建一个谷歌扩展程序,但它有两个问题:1)我的整个代码将是公开的并且易于访问 2)我不能像手动点击一样UI 路径可以。
  • 有 Cypress.io,它不使用 Selenium,而是使用 Javascript,并且没有跨浏览器功能。有 WatiN 或 WatiR。 WatiN 使用 .NET,而 WatiR 使用 Ruby。还有其他的,但说真的,我遇到的最好的工具是 Selenium Webdriver。是的,它有缺陷,但是,对于跨浏览器测试,它确实是最好的。

标签: python-3.x automation webdriver selenium-chromedriver


【解决方案1】:

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

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

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

【讨论】:

  • 您好,谢谢您的回答。实际上,我正在尝试创建自己的 RPA 工具,并且我正在寻找一个用于自动化网络的解决方案,并且我不想使用任何像 selenium 这样的库。我创建了一个几乎可以做所有事情的扩展,但是扩展的问题是我的整个源代码都是可见的,我不希望这样。你能给出任何解决方案吗?
  • 恐怕我不知道“RPA 工具”是什么,所以我无法提供有关如何创建的建议。此外,你还没有回答为什么你不想使用 Selenium 超出了“我就是不想”的问题。可以肯定的是,这是一个完全正当的理由,但您能否澄清这是否是唯一的原因,或者是否还有其他一些您想要克服的缺陷?
  • 我只想从头开始创建所有内容(一切可能),没有其他原因。 RPA Tool 是一种自动化工具,您可以通过 Google 搜索。我想要的是与我的浏览器进行交互,以便我想打开浏览器单击一个元素并获取它的 xpath、选择器或任何可能的东西,这样我就可以一次又一次地重复相同的任务而无需任何人工参与。我发现的一种解决方案是对所有内容使用扩展名,但我不希望我的代码对所有人开放,我也不想使用其他人的代码。你能给出这个任务的解决方案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
相关资源
最近更新 更多