gpt4 book ai didi

javascript - 刮掉一些数组值以进行断言( Protractor )

转载 作者:行者123 更新时间:2023-11-30 15:16:26 33 4
gpt4 key购买 nike

有没有办法刮掉或删除 element.all 数组返回的随机值或少数值?

我尝试自动化的场景是检查从数组列表返回的每一行中是否应该出现单词“HTML”。

我使用 w3Schools 作为虚拟测试网站来试验我的场景,下面是由于断言而失败的代码。

describe('Searching for word HTML', function() {
var array=[];
var counter=0;
it('Beginning of the test', function() {

browser.ignoreSynchronization = true;
browser.get('https://www.w3schools.com/html/default.asp');

browser.sleep(5000).then(function(){});

var lines = element.all(by.css('#leftmenuinnerinner>a'));
lines.count().then(function(counting){
console.log("There are total "+counting+" links");
counter=counter+counting;
return counting;
})
lines.getText().then(function(text){

console.log("Values:::: "+text);
for(var k=0;k<text.length;k++){
expect(text[k]).toContain('HTML');
}
})
})
})

我知道我可以使用 xpath 值并仅迭代 76 个值的循环,但我正在尝试通过 css 选择器的方法,我需要严格获取整个值列表,所以有没有一种方法可以 trim 或者通过我的代码从返回的数组中动态删除值“HTTP Messages”、“HTTP Methods”、“PX to EM Converter”和“Keyboard Shortcuts”,以便我的断言通过?

最佳答案

您可以使用filter 方法只保留包含您想要的文本的元素。 - http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.filter

lines.filter(function(elem, index) {
return elem.getText().then(function(text) {
return text.includes('HTML');
});
})

或者您可以使用 cssContainingText 定位器来获取所需的元素。 - http://www.protractortest.org/#/api?view=ProtractorBy.prototype.cssContainingText

var lines = element.all(by.cssContainingText('#leftmenuinnerinner>a','HTML'));

关于javascript - 刮掉一些数组值以进行断言( Protractor ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44390959/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com