RemoteWebDriver.executeScript()和Selenium.getEval()之间有什么区别?

时间:2012-07-26 02:40:04

标签: java javascript selenium webdriver selenium-webdriver

这有什么区别:

RemoteWebDriver driver = new FirefoxDriver();
Object result = driver.executeScript("somefunction();");

和此:

RemoteWebDriver driver = new FirefoxDriver();
Selenium seleniumDriver = new WebDriverBackedSelenium(driver, driver.getCurrentUrl());
String result = seleniumDriver.getEval("somefunction();");

我有一个例子,当第一个命令工作,第二个挂起Firefox和其他方式。我想了解这两个函数之间的区别。

2 个答案:

答案 0 :(得分:4)

提供的脚本片段将作为匿名函数的主体执行。

 ((JavascriptExecutor)driver).executeScript("somefunction();");

在内部将类似内容注入到文档中:

return function()
{ 
   somefunction(); 
}.call();

所以基本上在webdriver上,executeScript同步执行并且可以阻止。

答案 1 :(得分:2)