主な目的は、javacript要素authKeyをJavaコードにすることです。Firefox上でJava WebDriverからjs変数を使用する方法
のindex.html:
...
<script type="text/javascript">
var params = {
authKey: "abc"
};
Main.init("#content", params);
</script>
...
がmain.java:私が試した
Exception in thread "main" org.openqa.selenium.JavascriptException: ReferenceError: **params is not defined**
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
System info: host: 'Mikhails-MacBook-Pro.local', ip: '10.10.20.139', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.6', java.version: '1.8.0_111'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
:
public static void main(String[] args) throws InterruptedException {
WebDriver d = new FirefoxDriver();
d.get("***/index.html");
// System.out.println(" var " + d.findElement(By.xpath("/html/body/script[3]")));
Thread.sleep(3000);
JavascriptExecutor jse = (JavascriptExecutor) d;
// System.out.println(jse.executeAsyncScript("document.URL"));
Object val = jse.executeScript("return params.authKey;");
d.quit();
}
私はいつものようなものを取得しています。ここ コードですこのauthKeyパラメータを返すことなく、関数として取得するにはさまざまな方法がありますが、まだ何もありません。 それ?
ありがとうございます。
UPD: 解決策https://stackoverflow.com/a/40936063/6809155解決策はまだありますが、将来params.authKeyパラメータを取得するためにネイティブjsソリューションを探しています。
可能な重複[セレンwebdriverを使用してJavaとJavaScriptを使用方法】(http://stackoverflow.com/questions/11430773/how-to-use-javascript-with- selenium-webdriver-using-java) – AxelH
ランダムな推測では、JSのスコープが異なり、paramsは "window"オブジェクトにアタッチされていません。 – dav1d
@AxelHありがとう、しかし、私はすでにそこからすべての亜種を試しました。そして、http://stackoverflow.com/questions/13994393/reading-javascript-variables-using-selenium-webdriver –