4

我需要使用 user-extensions.js 中定义的函数。我们正在从 RC 迁移到 webdriver。我开始知道,有 JavascriptExecutor 将替换 runScript 和 getEval。但是我将如何指定 user-extensions.js 文件。和 java -jar selenium-server-standalone.jar -userExtensions user-extensions.js 一样吗?

4

3 回答 3

4

最后,经过 2 年零 2 个月,我找到了在 webdriver 中使用用户扩展文件的解决方案,现在我们正在迁移到 webdriver。

 loadjsFile(driver);

功能如下:

public static void loadjsFile(WebDriver driver){
String scriptSrc = "http://localhost:8080/test/user-extensions.js";
String injectScript = "var script = document.createElement(\"script\");";
injectScript += "script.src = \""+scriptSrc+"\";";
injectScript += "script.setAttribute(\"type\",\"text/javascript\");";
injectScript += "document.body.appendChild(script);";
((JavascriptExecutor) driver).executeScript(injectScript);
}
于 2014-01-23T06:34:16.223 回答
1

他们现在有一个名为 IJavaScriptExecutor 的接口,可用于替换用户扩展。

这是 C#/NUnit 版本。

IJavaScriptExecutor js = driver as IJavaScriptExecutor;
long tableRowCount = (long)js.ExecuteScript("return $('#tableid tr').length);

这是 Java/JUnit 版本:

JavascriptExecutor js = (JavascriptExecutor) driver;
Object o = js.executeScript("return '123'");
于 2012-01-17T18:49:37.440 回答
1

没有办法像 Selenium RC 那样通过您的测试运行来注入 javascript,这里有一个关于一些可能的迁移提示的线程:http ://groups.google.com/group/selenium-developers/browse_thread/thread/15cb4b774b734cc7 /c7baf10db0bc2bc0

于 2011-12-14T18:32:36.073 回答