草庐IT

executescript

全部标签

ruby - 如何将变量传递给 capybara 中的 page.executescript()

我需要在javascript中传递要通过capybara中的excute_script方法执行的变量。我无法将变量传递给它。请任何人帮助我。例子:@idd="sample"txt=page.execute_script('varuser_id=${@idd};returnuser_id;')putstxt我希望打印文本示例,但我遇到了Java脚本错误。 最佳答案 我认为问题出在${};你必须使用#{};尝试:page.execute_script("varuser_id='#{@idd}';returnuser_id;")

javascript - Selenium & webdriver.io 如何使用executeScript?

我正在尝试使用Selenium、WebDriver.io和Node.js(使用Mocha)测试一个简单的表单。所以我有这样的东西:varwebdriverio=require('webdriverio');varexpect=require('expect');describe('Testform',function(){beforeEach(function(){browser.url('/');});it('shouldsaveobject',function(){expect(browser.executeScript('returnwindow.data;')).to.be([

javascript - 使用 chrome.tabs.executeScript 执行异步函数

我有一个功能,我想使用chrome.tabs.executeScript在页面中执行,从浏览器操作弹出窗口运行。权限设置正确,并且可以正常使用同步回调:chrome.tabs.executeScript(tab.id,{code:`(function(){//Dolotsofthingsreturntrue;})()`},r=>console.log(r[0]));//Logstrue问题是我要调用的函数要经过几个回调,所以我想使用async和await:chrome.tabs.executeScript(tab.id,{code:`(asyncfunction(){//Dolotso

javascript - 在 AppBrowser 中以编程方式更改 selectMenu 选项

我使用javascriptwindow.open()打开一个窗口打开的窗口有以下代码:jQuery(document).ready(function(){jQuery("#lang").change(function(){varlname=jQuery(this).val().split("-");window.location='index.php?lang='+lname[0];alert(lname[0]);alert('lang'+lang);});现在这段代码会在“lang”选择菜单发生变化时触发。我使用window.open以编程方式打开窗口,并设法使用Window.exe

javascript - chrome.tabs.executeScript : How to get access to variable from content script in background script?

如何从后台脚本background.js中的内容脚本app.js访问变量app?以下是我的尝试方式(background.js):chrome.tabs.executeScript(null,{file:"app.js"},function(){app.getSettings('authorizeInProgress');//...});这是我得到的:这是manifest.json:{"name":"ctrl-vk","version":"0.1.3","manifest_version":2,"description":"Chromeextensionforctrl+vinserti

javascript - Chrome 扩展 : How to remove content script after injection?

使用GoogleChrome扩展程序:是否可以在内容脚本已注入(inject)页面后将其删除?没有用于重新加载内容脚本的API方法(据我所知),所以我想重新注入(inject)脚本并删除旧脚本,如果可能的话。 最佳答案 没有。你不能“删除”它。运行内容脚本可能会产生副作用,例如在窗口对象上声明变量和函数、连接到后台页面或监听DOM事件。如果您的内容脚本没有副作用,则等于根本没有被注入(inject)。如果您想重新注入(inject)它,只需使用代码或源参数调用executeScript。简单地将注入(inject)的脚本定义为函数,

javascript - 我可以从 Protractor 测试中访问文档或窗口对象吗?

也许这是不可能的,我还不太明白节点是如何工作的。我希望能够在Protractor中获取页面后对文档对象运行断言。这样的事情可能吗?如果可能的话怎么办?谢谢! 最佳答案 好的,找到答案了,所以我为其他人回答我自己的问题:您可以使用browser.executeScript执行javascript,然后在您的promise解析中使用返回值,如下所示:browser.executeScript('returndocument._config').then(function(_config){expect(_config.epid).toB

javascript - Chrome 扩展 : Checking if content script has been injected or not

我正在开发Chrome扩展程序。我没有使用manifest.json来匹配所有URL的内容脚本,而是在用户单击扩展图标时通过调用chrome.tabs.executeScript懒惰地注入(inject)内容脚本。我正在尝试避免多次执行脚本。所以我的内容脚本中有以下代码:if(!window.ALREADY_INJECTED_FLAG){window.ALREADY_INJECTED_FLAG=trueinit()//问题#1,每次点击扩展图标时,这是否足够安全以天真地调用chrome.tabs.executeScript?换句话说,这是幂等的吗?问题#2,chrome.tabs.in

javascript - Firefox 扩展 : Error calling executeScript on file but not code

我正在尝试在新选项卡打开时在该选项卡中执行脚本。在我的后台脚本中我有:varlistener=function(tab){browser.tabs.executeScript(null,{file:"content_scripts/contentScript.js"});}browser.tabs.onCreated.addListener(listener);在contentScript.js中:functionfoo(){console.log("Executed");}foo();由此我得到以下错误:Error:Permissiondeniedtoaccessproperty"c

javascript - Chrome 扩展 : how to detect that content script is already loaded into a tab?

我的后台脚本中有以下代码:chrome.tabs.onUpdated.addListener(function(tabId,changeinfo,tab){if(changeinfo.status!=='complete')return;if(!matchesUrlFilters(tab.url))return;chrome.tabs.executeScript(tabId,{file:"jquery-1.7.1.min.js"},function(){chrome.tabs.executeScript(tabId,{file:"enhance.js"});});});但是,在某些情况