【问题标题】:How do you determine if an "Open" windows explorer window is open in Python?您如何确定“打开”的 Windows 资源管理器窗口是否在 Python 中打开?
【发布时间】:2018-08-24 04:17:08
【问题描述】:

在 Python 中,我使用 Selenium Chromedriver(我对这两个工具都很陌生)来学习如何进行一些非常基本的自动化。我目前正在做的测试是确定用户是否能够使用 Ctrl/Cmd + O 打开文件浏览器来打开文件。这部分就像一个魅力。但是,为了确定测试是通过还是失败,我需要程序知道文件资源管理器已打开。有谁知道这样做的好方法?谢谢!

我目前的测试只有:

def test_open_file(self):
   ActionChains(self.driver).key_down(Keys.CONTROL).send_keys("o").perform()

【问题讨论】:

  • Command/Control-O 是浏览器功能;它不是(也不应该是)您的 Web 应用程序的功能。为什么要测试它?
  • 我这样做是作为 Web 应用程序回归测试的一部分,该应用程序允许您打开和编辑 PDF,但我希望程序能够确定文件浏览器是否确实打开。否则(而且我经常遇到这种情况)测试可能会通过而没有任何实际发生。
  • 回归的原因是什么?
  • 顺便说一句,它是一个 Electron 应用程序......测试只是为了确保在添加新功能时它没有破坏其他任何东西。但是这些可能会变得乏味,因此最好将它们自动化。
  • 这种集成看起来如何? Electron 是否提供了一个 JavaScript API 来声明打开文件的回调?

标签: windows python-2.7 selenium selenium-chromedriver


【解决方案1】:

Selenium 无法访问任何浏览器 chrome,因此无法告诉您文件资源管理器是否打开。 (Selenium 使用只处理网页内容的 WebDriver 规范。)


虽然您可以使用特定于操作系统的工具来解决问题,但我实际上建议您不要测试实际文件浏览器的存在。

第一,假设您正在测试一个 Web 应用程序,文件浏览器本身就在您的应用程序范围之外,因此到目前为止进行测试没有什么价值。你真的只需要测试你的应用程序和浏览器之间的边界,即浏览器提供的触发文件浏览器打开的 JavaScript API——在这种情况下,是一个键盘快捷键。

第二,Selenium 是一个相当昂贵的工具,不仅因为它运行整个浏览器,而且因为它不可避免地需要集成您的大部分系统。对于您的应用程序的如此精细的细节,可以使用 JavaScript 单元测试来进行更便宜的测试。

【讨论】:

    猜你喜欢
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    相关资源
    最近更新 更多