Selenium WebDriver を使用して、すべてを executeScript に入力するのではなく、外部 JavaScript ファイルを DOM に挿入しようとしています。
ノードを 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 の inspect 要素を使用して DOM を調べると、スクリプト ノードが適切に読み込まれていることがわかり、かなり混乱しています。
私はまた、このソリューションを試しました.Seleniumの別のバージョン(webdriverではない)用に作成されたようで、少なくとも少しは機能しませんでした.Seleniumで有用なテスト関数を含む外部jsファイルをロードします