Selenium Web Driver(Firefox)是否能够读取AngularJS ng-model注入的初始值?

cWa*_*ren 4 jquery selenium input angularjs

我有一个使用ng-model绑定到javascript对象的文本输入字段.javascript对象为字段提供初始值.

<input class="class1 class2" type="text" ng-model="scopeVar"></input>
Run Code Online (Sandbox Code Playgroud)

scopeVar是文本值.

当页面加载时,Selenium(使用firefox驱动程序)可以找到输入字段,验证它是否可见,可以在字段中输入文本然后再读取该文本,但它无法读取最初在该字段中的文本.

如果我在firefox浏览器窗口中执行$('.class1.class2').val(),它将返回预期的默认值.

如果我执行((JavascriptExecutor)驱动程序).executeScript("$('.class1.class2').val()")它返回null.如果我执行driver.driver.findElement(By.cssSelector(".class1.class2")).getText()它返回null.

所以看起来Angular正确地填充了DOM(就jQuery而言),但是Selenium Web Driver无法读取它.

注意:在我尝试阅读之前,我确认我有一个元素并且它是可见的.

任何帮助表示赞赏.

pau*_*l_h 5

我没有具体了解您的应用程序,但这适用于ng-model映射输入字段:

    WebDriver wd = new FirefoxDriver();
    wd.get("http://jsfiddle.net/SAWsA/11/show/");
    WebElement input = wd.findElement(By.tagName("input"));
    input.sendKeys("hello");
    input = wd.findElement(By.tagName("input"));
    System.out.println("fieldValue=" + input.getAttribute("value"));
    wd.quit();
Run Code Online (Sandbox Code Playgroud)

还有ngWebDriver for Java.