【发布时间】:2023-01-29 15:35:47
【问题描述】:
我有一个基于电子(使用 Electron,我们可以使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序)
我可以使用 Selenium 库测试它吗?
【问题讨论】:
标签: selenium selenium-webdriver automation electron robotframework
我有一个基于电子(使用 Electron,我们可以使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序)
我可以使用 Selenium 库测试它吗?
【问题讨论】:
标签: selenium selenium-webdriver automation electron robotframework
- 演示
1. 安装并启动 ChromeDriver:我们需要下载与我们的应用程序使用相匹配的 ChromeDriver 版本。
参数:
- 命令执行器:运行 chromedriver 的本地或远程端口(在我们的例子中是 9515)
- desired_capabilities:指定 Electron App 可执行文件 (ElectronApp.exe) 位置的字典
- 远程调试端口:应用程序的端口(在我们的例子中是 7070)
==> 在此之后,您应该会看到电子应用程序的第一页弹出!
options 参数可用于启动使用 Chromium Embedded Framework 的基于 Chomium 的应用程序。要启动基于 Chomium 的应用程序,请使用选项定义 binary_location 属性并使用 add_argument 方法为应用程序定义 remote-debugging-port 端口。打开浏览器后,测试可以与应用程序交互。
【讨论】:
通过 RobotFramework
下载Chrome Driver。它必须与 Electron 中的 Chrome 版本相同。
作为服务启动 chromedriver.exe
***Keywords***
Start WebDriver Service
${port} Convert To Integer ${portNumber}
${service}= Evaluate sys.modules['selenium.webdriver'].chrome.service sys
${service} CallMethod ${service} Service path/to/chromedriver.exe port=${port}
Call Method ${service} start
${portNumber} 是 ChromeDriver 端口的变量
Start Electron App
${options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys
Call Method ${options} add_argument --remote-debugging-port=7070
Call Method ${options} add_argument --no-sandbox
${options.binary_location} Set Variable path/to/electron/application
Create WebDriver Remote command_executor=127.0.0.1:${portNumber} options=${options}
然后你可以运行像浏览器应用程序这样的测试用例。
【讨论】: