我有一个由ng-model ='obj.values.x.value'支持的DOM输入元素
obj.values.x.value
有一个值,比如“foo”。
在Selenium中运行代码时,字段显示为“foo”
我尝试通过element.clear()
将字段设置为空字符串
调用element.getAttribute("value")
仍然会返回“foo”;
如果我使用JQuery获取dom元素,然后调用$(element).focus(); $(element).val('');
$(element).blur();
调用element.getAttribute("value")
仍然会返回“foo”;
在不知道角度已将ng模型绑定到obj.values.x.value
的情况下,无论如何从Selenium设置元素的值以便更改模型的默认值?
进一步的测试表明,只有当模型中提供了默认值并且我们尝试将值设置为空字符串时,才会出现此错误。
答案 0 :(得分:0)
我认为问题在于你清除价值的方式。使用jQuery尝试以下内容:
$(element).val('');
不太熟悉Selenium,但jQuery empty
removes child nodes,不是输入的内容。
答案 1 :(得分:0)
我认为这是因为每当你从外部改变Angular app中任何模型的值时,它都没有消化它。为此,我们需要使用$ scope.apply();我希望这是有道理的。