我有一个使用 ng-model 绑定到 javascript 对象的文本输入字段。javascript 对象为该字段提供初始值。
<input class="class1 class2" type="text" ng-model="scopeVar"></input>
scopeVar 是一个文本值。
当页面加载时,Selenium(使用 firefox 驱动程序)可以找到输入字段,验证它是否可见,可以在该字段中输入文本然后读取该文本,但它无法读取最初在该字段中的文本.
如果我在 firefox 浏览器窗口中执行 $('.class1.class2').val() 它会返回预期的默认值。
如果我执行 ((JavascriptExecutor) driver).executeScript("$('.class1.class2').val()") 它返回 null。如果我执行 driver.driver.findElement(By.cssSelector(".class1.class2")).getText() 它返回null。
所以看起来 Angular 正确地填充了 DOM(就 jQuery 而言),但 Selenium Web Driver 无法读取它。
注意:我确实验证了我有一个元素并且在我尝试阅读它之前它是可见的。
任何帮助表示赞赏。