【问题标题】:How to test an Electron browser using Spectron如何使用 Spectron 测试电子浏览器
【发布时间】:2019-03-05 16:41:39
【问题描述】:

我正在尝试测试我公司的 Electron 构建浏览器 https://github.com/maidsafe/safe_browser,但遇到了一些挑战,我正在寻求支持/指导。

经过大量研究,我似乎基本上有两个选择 - 使用 Spectron 作为测试框架或使用 Selenium 和 Chromedriver。我找到了一种通过使用 Chrome 选项并提供浏览器可执行文件的路径来使用 Selenium 的自定义二进制文件的方法,并认为我是赢家,但我遇到了一个主要问题 - 我可以启动浏览器,但我尝试了任何交互(使用我之前使用 Selenium Java 学习的“典型”测试自动化方法)失败:

WebElement secret = driver.findElement(By.cssSelector("#acc-secret"));

行不通 - 我得到了

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#acc-secret"}

我还尝试通过 Id 和 xpath 与元素进行交互——这些都不起作用。我用不同的屏幕元素尝试了不同的findElement 方法,但没有任何效果。

所以,我暂时放弃了这种方法 - 如果这种方法可行,那将是理想的,因为我的自动化经验在于 Selenium Java。不过没关系,我很高兴学习新东西,所以我研究了 Spectron。

但是,我发现有关 Spectron 的文档/博客文章难以消化 - 我是测试人员而不是开发人员,虽然我在技术上胜任,但我发现这里的假设知识水平比我目前拥有的要高。另外,这一切似乎都是我一无所知的Javascript。 (这就是为什么我希望能够走我熟悉的 Selenium 路线。)

我想做的是创建一套独立于浏览器代码库的测试套件,我们(QA 团队)可以在其中构建例如页面对象模型和相关的测试用例。

任何想法/建议/指导都将不胜感激,因为我觉得我目前还没有走得太远!

【问题讨论】:

  • 希望这会有所帮助。 stackoverflow.com/a/51186740/8903949
  • 谢谢,但当我说我可以让 Selenium 启动浏览器但无法与 Web 元素交互时,这就是我所尝试的。

标签: testing automated-tests electron spectron


【解决方案1】:

您没有收到此类元素错误。

检查以下几点。

  1. 确保聚焦正确的窗口。

  2. 确保您拥有正确的定位器。

  3. 开发工具窗口是否一直打开。

为了确认,只需获取页面标题并打印它。

【讨论】:

  • 好的,我做了driver.getTitle(),它返回了Background Process of SAFE Browser,这听起来像是解释了为什么我不能与页面元素交互。
  • 它应该可以工作,但是在开始与元素交互之前尝试添加足够的等待时间
  • 我想我有理由 - 与从事该项目的主要开发人员交谈,他告诉我,当我启动浏览器时,它实际上创建了两个窗口 - 一个隐藏的背景窗口和一个主窗口。似乎 Selenium 正在看到背景。我想我需要做类似driver.switchTo().window. 的事情,但这不是我熟悉的方法 - 需要进一步谷歌搜索!
  • 在 selenium 中使用窗口句柄
  • 不,我无法让 Selenium 与页面对话 - 我认为根本问题在于我们的应用程序而不是 Selenium,但没有时间进一步调查。
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 2019-04-04
  • 1970-01-01
  • 2014-10-25
  • 1970-01-01
  • 2017-07-24
  • 1970-01-01
  • 2018-03-06
相关资源
最近更新 更多