【发布时间】:2015-04-20 12:51:43
【问题描述】:
我想用 js.executeScript Selenium 的方法执行一个 yui js 脚本。 该脚本由 selenium webdriver 执行,以模拟混合移动应用程序上的“点击”(按钮为 webview)
String IncludeYUI = "script = document.createElement('script');script.type = 'text/javascript';script.async = true;script.onload = function(){};script.src = '"
+ YUI_PATH
+ "';document.getElementsByTagName('head')[0].appendChild(script);";
js.executeScript(IncludeYUI);
YUI_PATH 是一个 url - https://cdnjs.cloudflare.com/ajax/libs/yui/3.18.0/yui/.....
问题是我无法从当前站点访问全球网络。
所以我想将脚本保存在项目下,然后从 FS 加载它。 不过这是个js,没办法访问FS...
任何想法如何加载脚本?
谢谢
【问题讨论】:
-
你是如何加载页面开始的?
-
我没有页面可以启动,只是执行js代码来点击一些webElement
-
您可以将 your library 的整个文本内容(将所有换行符作为文字删除)复制粘贴到您使用
js.executeScript(s)执行的String s中。之后,您的库应该可用。 -
@halex - 感谢您的回答,您能否解释一下“将所有换行符作为文字删除”?
-
@Igal 删除库中所有出现的换行符(就像您想最小化它一样)以将源作为一个大字符串。这仅在所有语句都以
;正确终止时才有效,否则您需要遍历库的代码并将其转换为您可以手动使用的形式。
标签: javascript selenium dynamic-script-loading resource-loading