这有什么区别:
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和其他方式。我想了解这两个函数之间的区别。
答案 0 :(得分:4)
提供的脚本片段将作为匿名函数的主体执行。
((JavascriptExecutor)driver).executeScript("somefunction();");
在内部将类似内容注入到文档中:
return function()
{
somefunction();
}.call();
所以基本上在webdriver上,executeScript同步执行并且可以阻止。
答案 1 :(得分:2)