2 回答
TA贡献1826条经验 获得超6个赞
出于安全原因,Chrome 不允许您加载本地资源。您需要将文件放在驱动程序可以访问的地方(网络驱动器/服务器/存储库等),或者读取文件并将其作为参数传递。
以下是第二个选项的工作原理:不要src在脚本元素上指定
je.executeScript(
$"var headID1 = document.getElementsByTagName('head')[0]; "
+ "var newScript1 = document.createElement('script'); "
+ "newScript1.type = 'text/javascript'; "
+ "var code = {fileText}; "
+ "newScript1.appendChild(document.createTextNode(code)); "
+ "headID1.appendChild(newScript1); "
+ "takeScreenShot();"
);
TA贡献2039条经验 获得超7个赞
这是我使用 Selenium 执行/注入本地存储的“.js”文件的方法:
File newJSFile = new File(path_to_local_js_file);
if (newJSFile.exists())
{
try
{
Scanner sc = new Scanner(new FileInputStream(newJSFile));
String js_TxtFile = "";
while (sc.hasNext()) {
String[] s = sc.next().split("\r\n");
for (int i = 0; i < s.length; i++) {
js_TxtFile += s[i];
js_TxtFile += " ";
}
}
try
{
((JavascriptExecutor)driver).executeScript(js_TxtFile);
}
catch (Exception ex)
{
System.out.println ("Exception when running Javascript: " + ex.toString());
}
}
catch (Exception ex)
{
System.out.println(ex.toString());
}
}
添加回答
举报