我使用javascript和imacros从网站收集一些数据,我有这行代码:
final_macro += "ADD !EXTRACT " + '"' + lager_col2[0].textContent + '"' + "\n";
当我在浏览器中运行js时出现此错误:
我应该担心吗?禁止使用错误:多进程Firefox,第208行不支持访问内容窗口(错误代码:-991)
textContent
吗?
问题是lager_col2[0]
有时恰好是一个链接,我只想要链接中的文本,而不是标签和所有内容。很自然地,我选择textContent
。我怎么能绕过这个?
此外,在尝试使用window.document.getElementsByClassName
访问某些节点时,我是否在设置自己?
使用iMACROS TAG POS / XPATH会更好吗?
答案 0 :(得分:4)
奇怪的是,我得到了完全相同的错误,甚至到了代码行号。显然我的JavaScript行号与你的不符。起初我认为问题是由于我最近升级到Firefox 48引起的。但是当我将我的imacros移动到运行Firefox 47的另一台机器时,我得到了与你完全相同的错误。
更新:我的解决方法是将Firefox iMacros扩展从9.0.3降级到8.9.7。现在我的宏再次使用Firefox版本47和iMacros版本8.9.7。
答案 1 :(得分:0)
在类似的情况下,我可以建议您使用附加功能的旧解决方法之一来获取一些窗口内容:
var someContent = getSomeContent("document.getElementsByClassName('someclass')[0].textContent");
alert(someContent);
function getSomeContent(selector) {
var ret = iimPlayCode("URL GOTO=javascript:alert(" + selector + ");");
if (ret < 0)
return iimGetErrorText().match(/Dialog message: "([\s\S]*)",/)[1];
}
这个想法似乎很有帮助。但我还没有在多进程Firefox中测试这个脚本。
答案 2 :(得分:0)
重新安装插件iMacros。这对我很有帮助。
答案 3 :(得分:0)
imacro不支持访问dom元素请回到比imacro 9更早的旧版imacro。
答案 4 :(得分:0)
Firefox&gt; 47.0.1和iMacros&gt; 8.9.7不支持(因为Firefox架构已更改)
<强>解决:强>
步骤1.删除附加的imacros(如果已安装)。
步骤2.卸载Firefox。
步骤3.点击此链接下载Firefox版Firefox 47.0.1。 https://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/win32/en-US/Firefox%20Setup%2047.0.1.exe或此链接https://support.mozilla.org/en-US/kb/install-older-version-of-firefox
步骤4.安装Firefox 47.0.1并在启动Firefox后访问“about:support”。
步骤5.您可以看到“刷新Firefox”按钮,单击它并重新启动Firefox。
步骤6.点击此链接下载iMacros版本8.9.7。 https://addons.mozilla.org/en-US/firefox/addon/imacros-for-firefox/versions/