如何在Selenium测试中注入JS函数?

如何在Selenium测试中注入JS函数?,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我正在将Selenium客户端驱动程序2.5.0与WebBackedSeleniumDriver一起使用。我想注入一个Javascript函数,以便在我的测试中使用,但遇到了一些问题。下面是我如何初始化我的驱动程序 final FirefoxDriver driver = new FirefoxDriver(); selenium = new WebDriverBackedSelenium(driver, baseUrl); 但是下面的第二行抛出一个“'inc'未定义错误。”

我正在将Selenium客户端驱动程序2.5.0与WebBackedSeleniumDriver一起使用。我想注入一个Javascript函数,以便在我的测试中使用,但遇到了一些问题。下面是我如何初始化我的驱动程序

    final FirefoxDriver driver = new FirefoxDriver();
    selenium = new WebDriverBackedSelenium(driver, baseUrl); 
但是下面的第二行抛出一个“'inc'未定义错误。”

你知道我如何成功地注入Javascript函数以用于其他测试吗


谢谢,-Dave

请尝试按以下方式稍作更改

    selenium.getEval("inc = function(x) { return x + 1; }");
    String incResult = selenium.getEval("inc(5);");

根据selenium文档():

在当前测试窗口的主体中创建一个新的“script”标记,并将指定的文本添加到命令主体中。以这种方式运行的脚本通常比使用Selenium的“getEval”命令执行的脚本更容易调试。请注意,这些脚本标记中抛出的JS异常不是由Selenium管理的,因此如果脚本有可能抛出异常,您可能应该将脚本包装在try/catch块中

因此,我对答案所做的唯一更改是将getEval更改为runScript方法

    selenium.getEval("inc = function(x) { return x + 1; }");
    String incResult = selenium.getEval("inc(5);");