可以将Selenium与Python一起用于Electron应用程序吗?

时间:2016-08-07 05:15:58

标签: python selenium automation electron ui-automation

我对使用Electron应用程序的Selenium测试很陌生;我知道如何使用Python通过webdriver驱动Chrome,以及如何在Firefox上使用Selenium IDE,但我很难找到一个好的信息来源。

到目前为止,我有一个使用Electron制作的应用程序,我想使用Selenium来驱动它并自动化基础知识。我做了一些研究,大部分结果都是使用node.js,我根本不知道。我想使用Python,所以在开发一种完全不同的语言之前,我想向更多的观众询问,如果有些东西已经在Python上进行了Selenium测试,那么在Electron应用上

特别是,如何分配包含电子应用程序的变量?用浏览器我会说

from selenium import webdriver

driver = webdriver.Chrome('/chromedriver')

但这对电子应用来说没有意义。

3 个答案:

答案 0 :(得分:1)

我确实找到了捕捉应用程序的方法。

您需要下载Chromedriver;并在你喜欢的端口上运行它(例如:8765)。

然后你可以使用

访问通过Electron编写的应用程序
from selenium import webdriver

    remote_app = webdriver.remote.webdriver.WebDriver(
                 command_executor='http://localhost:8765',
                 desired_capabilities = {'chromeOptions':{ 'binary': '/myapp'}},
                 browser_profile=None,
                 proxy=None,
                 keep_alive=False)

然后您可以像往常一样访问应用程序上的DOM元素。不确定它是否可以在Windows,OSX和Linux上运行,必须尝试。

答案 1 :(得分:0)

是的,您可以使用驱动程序选项和功能来实现。 您需要设置二进制路径,并且应该在选项上添加参数。

二进制路径是“ .bin”中项目目录下的电子应用路径。 参数路径是项目的主目录。

例如: 假设您的项目位于主目录下,名为“ ElectronProject”

Binart路径为'/Users/Home/ElectronProject/node_modules/.bin/electron' 参数路径为“ / Users / Home / ElectronProject”

答案 2 :(得分:0)

是的,有可能。您可以参考文档{https://electronjs.org/docs/tutorial/using-selenium-and-webdriver