我正在使用Selenium客户端驱动程序2.5.0和WebBackedSeleniumDriver。我想在我的测试中注入一个Javascript函数,但是遇到了一些麻烦。这是我如何初始化我的驱动程序......
final FirefoxDriver driver = new FirefoxDriver();
selenium = new WebDriverBackedSelenium(driver, baseUrl);
但是下面的第二行会抛出“'inc'未定义错误。”
selenium.getEval("function inc(x) { return x + 1; }); ");
String incResult = selenium.getEval("inc(5);");
我是如何成功注入Javascript函数以便在其他测试中使用的?
谢谢, - 戴夫
答案 0 :(得分:3)
请尝试稍微改变如下。
selenium.getEval("inc = function(x) { return x + 1; }");
String incResult = selenium.getEval("inc(5);");
答案 1 :(得分:0)
根据selenium docs(Selenium Driver .NET Docs):
在当前测试窗口的主体中创建一个新的“script”标记,并将指定的文本添加到命令的主体中。以这种方式运行的脚本通常比使用Selenium的“getEval”命令执行的脚本更容易调试。请注意,这些脚本标记中抛出的JS异常不是由Selenium管理的,因此如果脚本有可能抛出异常,您应该将脚本包装在try / catch块中。
因此,我对答案的唯一改变是更改 getEval ,转而使用 runScript 方法。