我想在我的脚本中使用JavaScript。
我创建了object
JavaScriptExecutor
,但executeScript()
方法不存在。使用executeScript()
方法时显示错误。
这是我用过的代码:
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.JavascriptExecutor;
public class GetDomain_JS {
public static void main(String[] args) {
WebDriver driver=new FirefoxDriver();
driver.get("http://only-testing-blog.blogspot.in/2013/11/new-test.html");
driver.manage().window().maximize();
System.out.println(driver.getCurrentUrl());
JavaScriptExecutor js=(JavaScriptExecutor) driver;
String domain_name=(String) js.executeScript("return document.domain");
System.out.println(doamin_name);
}
}
答案 0 :(得分:17)
对我有用;您在JavaScriptExecutor
上使用大写S
时出错。相反,您应该javascriptExecutor
使用小写s
。
试试这段代码:
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
public class GetDomain_JS {
public static void main(String[] args) {
WebDriver driver=new FirefoxDriver();
driver.get("http://only-testing-blog.blogspot.in/2013/11/new-test.html");
driver.manage().window().maximize();
System.out.println(driver.getCurrentUrl());
JavascriptExecutor js=(JavascriptExecutor) driver;
String domain_name=(String) js.executeScript("return document.domain");
System.out.println(domain_name);
}
}
这对我有用!!如果它适合你,请重击!
答案 1 :(得分:2)
请确保您已导入正确的包裹。
使用Java Script的预期包:
import org.openqa.selenium.JavascriptExecutor;
试试这个包。这应该可以解决您的错误。
答案 2 :(得分:1)
添加最新的jar(我正在使用3.0 beta selenium jar)。导入Javascript库包。通过强制转换为JavascriptExecutor获取Web驱动程序对象,并运行您要运行的任何Java脚本。
import com.thoughtworks.selenium.webdriven.JavascriptLibrary;
Object ob = ((JavascriptExecutor) webDriver()).executeScript("return document.domain").toString();
System.out.println(ob);
答案 3 :(得分:0)
您可以从executeScript返回Object。稍后您可以从中获取文本。
Object domain_name = js.executeScript("return document.domain");
System.out.println(domain_name.toString());
通过这种方式,您可以返回任何类型的值,而不仅仅是字符串。