JavaScript执行什么环境?

时间:2017-01-02 22:52:05

标签: selenium-webdriver

在selenium-webdriver中,在驱动浏览器中执行的JavaScript似乎无法访问活动页面的全局变量。这与selenium docs和WebDriver规范相反,所以我可能配置错误。

google.com主页有一个gapi全局变量,我可以在控制台中手动访问:

>> gapi
Object { load: pr.load(), loaded_0: null, _: Object, config: Object, iframes: Object, plusone: Object, platform: Object, widget: Object }

尝试在selenium执行的脚本中访问它时失败并出现引用错误:

const driver = builder.build();
driver.get('http://www.google.com/');
driver.executeScript(`alert(gapi);`);
// JavascriptError: ReferenceError: gapi is not defined

写入window的值可以在后续注入的代码中访问,但永远不会进入主页面。在硒:

driver.executeScript(`window.test='testvalue';`);
driver.executeScript(`alert(window.test);`);
// Alerts: testvalue

在该警报被取消后的控制台中:

>> window.test
undefined

这里发生了什么? selenium执行的脚本在什么环境中执行?

0 个答案:

没有答案