Javascript 量角器:如何在单击按钮前后比较同一web元素的文本内容
我想在我的angularJS应用程序中测试一个过滤功能。 事实上,当我点击过滤器时,页面上显示的搜索结果数量应该会减少 以下是我目前的代码:Javascript 量角器:如何在单击按钮前后比较同一web元素的文本内容,javascript,angularjs,jasmine,protractor,Javascript,Angularjs,Jasmine,Protractor,我想在我的angularJS应用程序中测试一个过滤功能。 事实上,当我点击过滤器时,页面上显示的搜索结果数量应该会减少 以下是我目前的代码: element(by.id('foundNumber')).getText().then (function(text){console.log(text); }) element(by.repeater('term in facets.uproctype').row(0)).click () element(by.id('foun
element(by.id('foundNumber')).getText().then (function(text){console.log(text); })
element(by.repeater('term in facets.uproctype').row(0)).click ()
element(by.id('foundNumber')).getText().then (function(text){console.log(text); })
这是我的控制台日志:
Using the selenium server at http://localhost:4444/wd/hub
6209
6195
....
我不知道如何在一个expect行中比较这两个值,因为我不能在它们的函数中使用它们。
有什么帮助吗
谢谢
Zied我相信您必须嵌套then函数,以确保原始值可用
element(by.id('foundNumber')).getText().then( function(original_text) {
element(by.repeater('term in facets.uproctype').row(0)).click ();
element(by.id('foundNumber')).getText().then( function(new_text){
expect(original_text).not.toBe(new_text);
});
});
这个链接也可能有帮助。
另一种方法是在量角器控制流中安排比较,以便在所有值可用后执行比较
var oldValue,newValue;
element(by.id('foundNumber')).getText().then(function(text){oldValue=text})
element(by.repeater('term in facets.uproctype').row(0)).click()
element(by.id('foundNumber')).getText().then(function(text){newValue=text})
protractor.promise.controlFlow()
.execute(function(){return protractor.promise.fulfilled()},'wait for control flow')
.then(function(){
expect(oldValue).not.toEqual(newValue);
});
这篇文章对flow.execute()进行了很好的解释。我想您可以使用
expect
从不同的角度比较.getText()
的结果
var text1 = element(by.id('foundNumber')).getText();
element(by.repeater('term in facets.uproctype').row(0)).click();
var text2 = element(by.id('foundNumber')).getText();
expect(text1).not.toBe(text2);
expect
处理传递给它的承诺的展开,并实际比较已解析的值。您是否尝试在中分配变量,然后在第二个中分配变量:oldValue=text
和newValue=text
?是的,但它不起作用,因为我无法访问函数外部的oldValue和newValue然而,我希望稍后在expect行中比较这些值。即使您在上面的说明
或it
中声明它们,并在中分配它们,那么
?是的,它将返回未定义的值,我想这是因为它是异步的。不确定,因为我对JS还很陌生