【发布时间】:2013-09-03 18:02:16
【问题描述】:
我正在使用 Selenium 2.0 为我的 Google Chrome 扩展程序创建自动化测试:
- WebdriverJS + NodeJS
- ChromeDriver
- MacOSX 10.8.4
首先,我也想测试安装过程,但是当使用 Selenium 弹出安装对话框时,似乎无法单击“添加”按钮。 (My other SO question about this)。
现在,我改变了我的计划。我不想将扩展程序安装为试驾的一部分,而是想在安装了我的扩展程序的情况下启动 Chrome。但我没有成功。
请看下面的代码:
var webdriver = require('selenium-webdriver'),
chrome = require('selenium-webdriver/chrome');
var o = new chrome.Options();
o.addExtensions(['extensions/chrome/chrome_extension.zip']); // crx file is just a zip file
var s = new chrome.ServiceBuilder('bin/chromedriver').build();
var driver = chrome.createDriver(o, s)
当我运行上面的代码时,我收到以下错误:
我注意到 ChromeDriver 在打开 Chrome 时会加载一个名为“Chrome 自动化扩展程序 1”的 Chrome 扩展程序,因此必须有一种方法来加载另一个扩展程序,要么直接从带有应用 ID 的 Webstore 加载它,要么加载从本地机器 - 打包或解包。
任何帮助将不胜感激!
【问题讨论】:
-
标题与问题有什么关系?这里没有关于“类”或“实例”的内容,更不用说标题中包含的内容了。但不是:一个类不是它自己的一个实例;虽然它是一个实例(即类也是对象)。
-
@user2246674 这绝对是一个不正确的标题。谢谢你抓住它!我会解决这个问题
-
manifest.json 是否在您的 zip 文件的根目录中? IE。你是不是在压缩之前不小心把你的扩展文件放在了一个子目录中?
-
@RobW 我在 zip 文件中的“extension”子目录下拥有所有文件,但这就是我将扩展上传到 Webstore 的方式。我将尝试使用没有子目录的新 zip 文件。感谢您的提示。
-
@RobW 非常感谢!有效! :) 请发布答案,以便我接受。
标签: selenium google-chrome-extension selenium-webdriver selenium-chromedriver