如何自动实现与父网页互动的Chrome扩展程序?

时间:2019-07-08 16:55:13

标签: python selenium google-chrome-extension automated-tests sikuli

我想自动化进行chrome扩展的测试。

我已经使用selenium-python自动执行父网页,但是我无法使用selenium自动执行chrome扩展程序,因为selenium绑定到了网页视图,所以我无法单击chrome Google Chrome标题栏中显示的扩展程序图标。由于此限制,我尝试使用sikuli单击chrome-extension图标,但我无法获得单击扩展图标时出现的chrome-extension弹出HTML的DOM,因为我必须访问显示的文本通过扩展的弹出html页面,然后对其进行评估。我的测试失败。

我以为我可以使用shift_to_window()但徒劳的是,因为它弹出了html,因此我无法移动。如果改为使用sikuli,则随着测试用例的增加,自动化它所需的图片数量也会增加,所以这是不可行的。

Sample Screenshot, 在此图片中,网上商店页面是父页面,右上角的小弹出窗口是我正在谈论的弹出窗口,单击chrome扩展名后即会出现。所以基本上我必须与该弹出HTML进行交互。

2 个答案:

答案 0 :(得分:0)

我不太明白为什么您不能使用Selenium来自动化任何网页,并且所描述的限制是什么。也许例如屏幕截图之类的示例甚至是相关网页的链接都可以提供帮助。此外,我不明白为什么在使用Sikuli时无法从页面提取DOM是一个限制。 Sikuli没有从DOM获得任何收益,它纯粹基于屏幕的可视内容。

我会尝试使用标准的Selenium功能来处理您正在描述的弹出窗口,如下所示:

driver.switchTo().alert().dismiss();

还有其他警报处理选项,因此您可以选择最适合自己的警报。

答案 1 :(得分:0)

您需要一个台式机 UI testing解决方案来自动执行Chrome扩展程序。像Selenium这样的纯Web测试解决方案不能自动执行,因为它无法访问它。

  • Sikuli(如上所述)是一个不错的选择。您不仅需要使用它来单击图标,还需要使用它来单击扩展按钮。

  • UI.Vision及其集成的Selenium IDE ++是另一个很好的工具。它直接在网络浏览器中运行,有关如何automate a Chrome extension的信息,请参见此论坛帖子。它具有可以将桌面自动化和Web自动化结合在一个脚本中的优点。