1

这有什么区别:

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 和其他方式。我想了解这两个功能之间的区别。

4

2 回答 2

4

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

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

在内部将这样的内容注入到文档中:

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

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

于 2012-07-26T07:08:06.443 回答
2

我想你想知道的都在Selenium Webdriver Documentation
特别是WebDriver 与 Selenium-RC 相比如何“驱动”浏览器部分?

于 2012-07-26T07:00:13.270 回答