javascript - 在java中执行javascript代码时发生错误

标签 javascript java selenium

我想在java中执行javascript代码。所以我编写了如下所示的代码。但在执行过程中它在中线失败。将错误说成“缺失”;在声明之前'.

JavascriptExecutor js = (JavascriptExecutor)driver;

String g=(String) js.executeScript("var r = confirm('r u ready');"+"if(r==true) { Var b='ok'; } return b;");

System.out.println(g);

最佳答案

如果您的目标是阻止执行直到dilog 关闭,那么您应该使用executeAsyncScript 而不是executeScript。

以下是显示确认对话框并等待某人关闭它的示例:

WebDriver driver= new ChromeDriver();
driver.manage().timeouts().setScriptTimeout(20, TimeUnit.SECONDS);

driver.get("http://stackoverflow.com");

Boolean confirm = (Boolean)((JavascriptExecutor)driver).executeAsyncScript(
  "var callback = arguments[0]; setTimeout(function(){ " +
  "  callback(window.confirm('Are you ready?'));       " +
  "}, 1);");

另一个用于显示提示对话框并等待有人输入一些文本并关闭它:

WebDriver driver= new ChromeDriver();
driver.manage().timeouts().setScriptTimeout(20, TimeUnit.SECONDS);

driver.get("http://stackoverflow.com");

// display a confirm dialog and waits for someone to type some text
String prompt = (String)((JavascriptExecutor)driver).executeAsyncScript(
  "var callback = arguments[0]; setTimeout(function(){ " +
  "  callback(window.prompt('Give me some text!'));    " +
  "}, 1);");

// display the text typed by the user
System.out.println(prompt);

关于javascript - 在java中执行javascript代码时发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36773573/

相关文章:

Firefox 浏览器 20 支持 selenium-webdriver

javascript - 如何使 jQuery 动画不那么生涩(视频示例)

java - Android - SPAN_EXCLUSIVE_EXCLUSIVE 跨度的长度不能为零

python - 如何使用 Python Selenium 获取多个元素的文本内容?

.net - 无法设置 ChromeDriver 实例的 PageLoad

Java Spring MVC 将文件上传为 byte[]

javascript - 与nodejs服务器端的时区偏移

javascript - 如何使用@inject 绑定(bind)函数?

javascript - 强制输入的 onChange 事件冒泡到父表单,并将值存储在状态中

java - SHA1 和 RSA 与 java.security.Signature 对比 MessageDigest 和 Cipher