如何使用硒将javascript文件加载到DOM中?
我正在使用Selenium WebDriver尝试将外部javascript文件插入DOM中,而不是将整个内容键入到experatScript中。
看起来它正确地将节点放入DOM中,但随后它只是忽略源,即所述源js文件上的函数不运行。
这是我的代码:
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Example {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://google.com");
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementsByTagName('head')[0].innerHTML += '<script src=\"<PATH_TO_FILE>\" type=\"text/javascript\"></script>';");
}
}
我链接到的javascript文件的代码是
alert("hi Nate");
我已经将js文件放在我的本地主机上,我使用 file:/// 调用它,并在外部服务器上进行了尝试。没有骰子。
另外,在Java部分,我尝试使用该技巧附加“scr”+'ipt“,但它仍然不起作用。当我使用Firefox的检查元素检查DOM时,我可以看到它正确地加载了脚本节点,所以我很困惑。
我也尝试了这个解决方案,它显然是为另一个版本的Selenium(不是webdriver)制作的,因此一点也不起作用:加载一个外部js文件,其中包含硒中有用的测试函数。