Ris*_*rma 3 angularjs protractor
我想li
在谷歌搜索栏"Webdriver"中输入后获取所有建议文本.我写了一些像这样的代码:
this.getElements = function(){
element.all(by.css('ul.sbsb_b')).then(function(text){
for(var i=0; i < text.length;i++)
{
console.log(text[i].getText());
}
});
};
Run Code Online (Sandbox Code Playgroud)
在执行时,我得到类似的东西:
{ ptor_:
{ controlFlow: [Function],
schedule: [Function],
getSession: [Function],
getCapabilities: [Function],
quit: [Function],
Run Code Online (Sandbox Code Playgroud)
而不是建议的文本值.
Seg*_*g3r 15
Protractor中有一组类似javascript数组的函数,允许你过滤()或map()async promise的结果.例如,如果原始的"element.all(by.css('something'))"将返回ElementFinders的列表,map()允许将其转换为getText()的数组,其在解析状态下只是一个字符串数组.然后,您可以随意使用它.
element.all(by.css('something')).map(function(elm) {
return elm.getText();
}).then(function(texts) {
texts.forEach(...);
});
Run Code Online (Sandbox Code Playgroud)
我们需要指定 getText() 来获取 element.all 中的文本列表
<ul class="menu">
<li>Home</li>
<li> About Us</li>
</ul>
element.all(by.css('.menu li')).getText().then(function(menus) {
expect(menus.length).toBe(2); //true
console.log(menus);
});
Run Code Online (Sandbox Code Playgroud)
日志输出
['Home','About Us']
Run Code Online (Sandbox Code Playgroud)
需要更多的辅助功能
要打印 getText() 中的值,您需要使用 .then() 解析 Promise
像这样的东西:
text[i].getText().then(function(textValue)
{
console.log(textValue);
});
Run Code Online (Sandbox Code Playgroud)
问候,
萨克希
归档时间: |
|
查看次数: |
27614 次 |
最近记录: |