gpt4 book ai didi

javascript - 无法比较 if 语句中的 element.getText() 值 - 在 Protractor 自动化中

转载 作者:行者123 更新时间:2023-11-28 21:28:54 25 4
gpt4 key购买 nike

我是 Protractor 的新手,我正在努力比较 if 条件下的值,我不确定我错过了什么。请检查我的规范,让我知道我需要做什么。

规范.js:

非 Angular 页面:单击元素并将 getText() 放入数组中

     browser.driver.findElements(by.css('classname')).then(function (list) {
pageCounts = list.length;
for (var pageIndex = 0; pageIndex < pageCounts; pageIndex++)
{
pageName[pageIndex] = list[pageIndex].getText();
list[pageIndex].click();
}

Angular 页面:检查标题

if (pageCounts > 1) {
element(by.xpath('')).getText().then(function (title)
{
expect(title).toBe('Accounts Created!');

非 Angular 页面:一旦标题匹配,它就会移动到另一个非 Angular 页面并将上面代码中的所有 getText() 值与菜单中的所有元素进行比较, 然后点击完全匹配

browser.driver.findElements(by.xpath('xpath')).then(function (totalPages) {
for (var menulength = 1; menulength < totalPages.length; menulength++){
menuPath[menulength] = browser.driver.findElement(by.xpath('xpath'));
menuPath[menulength].getText().then(function (menu) {
for (var menuIndex = 0; menuIndex < pageCounts; menuIndex++) {

if (menu === pageName[menuIndex]) {
browser.driver.findElement(by.xpath('')).click();
}
else
{
browser.driver.findElement(by.xpath('')).click();
}
}
}
});

它永远不会进入循环 if (menu === pageName[menuInde​​x])

最佳答案

您可以使用 each() 来简化代码ElementArrayFinder 上的函数:

var pages = element.all(by.css(".classname"));
var totalPages = element.all(by.xpath("xpath"));

pages.each(function (page) {
totalPages.each(function (totalPage) {
page.getText().then(function (pageText) {
totalPage.getText().then(function (totalPageText) {
if (pageText === totalPageText) {
element(by.xpath('xpath1')).click();
} else {
element(by.xpath('xpath2')).click();
}
});
})
});
});

还有一个方便的 map()也可以在这里应用的功能。

关于javascript - 无法比较 if 语句中的 element.getText() 值 - 在 Protractor 自动化中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30587704/

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