selenium调用js文件_Selenium:如何在加载/执行页面的任何其他脚本之前注入/执行Javascript?...

如果无法修改页面内容,则可以使用代理服务器,或在浏览器中安装的扩展程序中使用内容脚本.在硒内容中,您将编写一些将脚本作为现有元素的子项之一注入的代码,但是在加载页面之前(当您的驱动程序的get()调用返回时),您将无法运行该脚本.

String name = (String) ((JavascriptExecutor) driver).executeScript(

"(function () { ... })();" ...

文档在代码开始执行的时刻未指定.您需要在DOM开始加载之前,以便保证可能只能使用代理或扩展内容脚本路由才能满足.

如果您可以使用最小的线束来调整页面,则可能会检测到特殊的url查询参数的存在并加载其他内容,但是您需要使用内联脚本.伪代码:

(function () {

if (location && location.href && location.href.indexOf("SELENIUM_TEST") >= 0) {

var injectScript = document.createElement("script");

injectScript.setAttribute("type", "text/javascript");

//another option is to perform a synchronous XHR and inject via innerText.

injectScript.setAttribute("src", URL_OF_EXTRA_SCRIPT);

document.documentElement.appendChild(injectScript);

//optional. cleaner to remove. it has already been loaded at this point.

document.documentElement.removeChild(injectScript);

}

})();

...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值