![](/img/trans.png)
[英]How do I get the source HTML for a page after executing its associated JavaScript?
[英]How do I get the JSON response (as string) after executing javascript with webdriver ?
到目前为止,我已经尝试过了,它总是返回“ null”
WebDriver driver = new FirefoxDriver();
driver.get("http://localhost/index.php");
driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);
Object response = ((JavascriptExecutor) driver).executeScript("Debug.gameControls.debugSpinStart({\"positions\":[16,27,25,19,26],\"reelsIndex\":0});$.getJSON");
System.out.println(response);
有什么建议么 ?
您不会从JavaScript代码返回任何内容,因此总会得到null
。 您将需要以下内容:
Object response = ((JavascriptExecutor) driver).executeScript("return ...")
$ getJSON接受回调,假设您使用它调用资源,则下面的代码可用于以字符串格式返回json数据。
JSON.stringify()将json对象转换为executescript范围内的字符串。 然后executeScript返回此值,并将其分配给下面的响应对象。
Object response = ((JavascriptExecutor) driver).executeScript("Debug.gameControls.debugSpinStart({\"positions\":[16,27,25,19,26],\"reelsIndex\":0});" +
"$.getJSON('/resource/data.json',function(data){ return JSON.stringify(data) });")
并使用jsonparser将字符串解析为Json
JsonElement jelement = new JsonParser().parse((String) response);
JsonObject jobject = jelement.getAsJsonObject();
以上两种类型都需要导入com.google.json。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.