0

我有一个由 ng-model='obj.values.x.value' 支持的 DOM 输入元素,它 obj.values.x.value有一个值,比如“foo”。

在 Selenium 中运行代码时,该字段显示“foo”。 我尝试通过调用
将字段设置为空字符串仍然返回“foo”;element.clear()element.getAttribute("value")

如果我使用 JQuery 获取 dom 元素然后调用$(element).focus(); $(element).val(''); $(element).blur(); 调用element.getAttribute("value")仍然返回“foo”;

在不知道 angular 已将 ng-model 绑定到 的情况下,obj.values.x.valueSelenium 是否有设置元素的值以便更改模型的默认值?

进一步的测试表明,只有在模型中提供了默认值并且我们尝试将值设置为空字符串时才会发生此错误。

4

2 回答 2

0

我认为问题在于您擦除价值的方式。使用 jQuery 尝试以下操作:

$(element).val('');

对 Selenium 不太熟悉,但是 jQueryempty删除了子节点,而不是输入的内容。

于 2013-09-03T18:07:59.750 回答
0

我认为这是因为每当您从外部更改 Angular 应用程序中任何模型的值时,它都不会消化。为此,我们需要使用 $scope.apply(); 我希望它有意义。

于 2014-06-18T14:29:18.503 回答