主要问题是我的扩展程序正在加载到目标网页上的每个iframe中.它还会将按钮显示在iframe中.我希望他们消失.窗口和文档对象显示为父窗口和文档对象.因此,例如因为它显示父级的位置而不是iframe的位置,所以无法检查文档位置.
我正在尝试连接到我的AWS unix机器上安装了FF版本26.0的selenium 2.30,但当我启动访问selenium的客户端时,我收到以下错误.
此外,当我尝试与selenium独立jar 2.38.0相同时,它工作正常,但在一两天的一段时间后突然发生,它开始给出2.38.0以下的错误.不知道为什么会这样?任何的想法??
项目是我有一个多线程应用程序,其中客户端持续执行一些线程,ping一些URL和所有,它继续发生,除非发生如下的一些问题.
Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
Error: no display specified
Error: no display specified
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.4.76-65.111.amzn1.x86_64', java.version: '1.7.0_51'
Driver info: driver.version: FirefoxDriver
at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118)
at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:250)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:110)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:197)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:190)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:108)
Run Code Online (Sandbox Code Playgroud) java firefox selenium-grid firefox-addon-sdk selenium-webdriver
如果你要开始开发一个新的Firefox插件的今天,你还会使用XUL/JS或者你会开始使用Jetpack的,新的插件框架?
创建插件将继续在Firefox 4存在,但Jetpack的显然是建立蒸汽和我想象它会成为创造附加在未来的唯一途径的XUL方式.
现在是时候开始寻找切换/迁移到Jetpack了吗?
我有一个内容脚本,用于计算用户查看页面的时间.为此,我将内容脚本注入每个页面,启动计时器,然后在onbeforeunload触发事件时将消息发送回加载项.
但是,消息似乎永远不会传递给后台脚本.
鉴于我main.js看起来像这样:
var pageMod = require('page-mod'),
self = require("self");
pageMod.PageMod({
include: "http://*",
contentScriptFile: [self.data.url('jquery.min.js'),
self.data.url('content.js')],
onAttach: function(worker) {
worker.port.on('pageView', function(request) {
console.log("Request received");
});
}
});
Run Code Online (Sandbox Code Playgroud)
我可以main.js使用以下代码发送消息没问题.
self.port.emit('pageView', { visitTime: time });
Run Code Online (Sandbox Code Playgroud)
当我尝试按用户离开页面时遇到问题.当我这样做时,从未收到该消息:
$(window).bind('onbeforeunload', function(e) {
self.port.emit('pageView', { visitTime: time });
// This should prevent the user from seeing a dialog.
return undefined;
});
Run Code Online (Sandbox Code Playgroud)
我也试过听beforeunload,但这也行不通.可能是什么问题呢?
javascript firefox firefox-addon dom-events firefox-addon-sdk
我正在尝试将Chrome扩展程序移植到Firefox,我想知道什么是相同的,chrome.storage.local.set并且chrome.storage.local.get在Firefox中添加sdk.我想,是的simple-storage.
这是我的代码:
chrome.storage.local.set({'tokenFU': token});
[...]
chrome.storage.local.get('tokenFU',function(result){
token=result.tokenFU;
if(token && token != 'undefined'){
hideLog();
}
else
showLog();
});
Run Code Online (Sandbox Code Playgroud)
提前致谢 !
javascript google-chrome firefox-addon google-chrome-extension firefox-addon-sdk
我对firefox插件开发很新鲜,所以请原谅我,如果它太愚蠢了.我只是在堆栈中找不到答案.
我尝试从我的插件启动警报窗口:
alert('This is an alert');
Run Code Online (Sandbox Code Playgroud)
但是,它不会识别"警报".我应该包含哪些组件(要求)?
谢谢!
我试图使用pageMod在页面加载上运行脚本:但我看不到它的效果
var data = require("sdk/self").data;
var attachTo = require("sdk/content/mod").attachTo;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "*",
contentScriptWhen: "start",
allow:true,
attachTo: ["existing", "top"],
contentScriptFile: [data.url("jquery-2.1.1.min.js"),
data.url("somejs.js")],
})
Run Code Online (Sandbox Code Playgroud)
在我的somejs.js文件中,我有覆盖表单提交功能:
document.forms['frmMain'].submit=function submit(){alert("Submitting")...
...do some stuff
};
Run Code Online (Sandbox Code Playgroud)
在我的网页上有一个提交表单的按钮:
frmMain.method="post"
frmMain.action = "someurl";
frmMain.submit();
Run Code Online (Sandbox Code Playgroud)
但是当我点击按钮时,它不会调用我在上面定义的覆盖方法.当我使用firebug控制台覆盖该功能时它的工作原理!那么firebug做什么来运行命令,以便我可以在我的插件代码中执行相同的操作.
我们正在开发一个加载项,并希望将内容脚本注入首页和所有框架.但是我们发现内容脚本不能用src注入iframe作为"about:blank"或"javascript:...".
有什么意见/建议吗?
示例page-mod:
require("sdk/page-mod").PageMod({
include:["*", "file://*"],
contentScriptFile: [
"./content/content.js",
],
attachTo: ["existing","top", "frame"],...
Run Code Online (Sandbox Code Playgroud) 我正在使用它最新的jpm SDK开发一个Firefox附加组件.
完成主要代码后,我使用jpm run命令来运行扩展.
但是插件被禁用了.它说"无法验证ADDON NAME是否在FIREFOX VERSION中使用并且已被禁用."
我有一个扩展,检查http-on-examine-response侦听器中的响应.在听众可以通过改变头的HTTPChannel,并通过nsITraceableChannel我们可以改变响应内容.
但是如何在http-on-examine-response监听器中更改响应代码(例如从407到200)?
一些代码:
const { Ci, Cu, Cc, Cr } = require('chrome');
Cu.import('resource://gre/modules/Services.jsm');
var observer = {
observe: function(aSubject, aTopic, aData) {
if (aTopic == 'http-on-examine-response') {
console.log('we are in observer http-on-examine-response');
var httpChannel = aSubject.QueryInterface(Ci.nsIHttpChannel);
if(httpChannel.responseStatus == 407){
httpChannel.responseStatus = 200; // <-- this is not working
}
}
}
};
Services.obs.addObserver(observer, 'http-on-examine-response', false);
exports.onUnload = function (aData, aReason) {
Services.obs.removeObserver(observer, 'http-on-examine-response');
};
Run Code Online (Sandbox Code Playgroud)