Это мой первый пост, и я обращаюсь за помощью, поскольку я новичок в транспортире.
Я хочу получить текст всех веб-элементов в теге div и сравнить текст с моим ожидаемым текстом. Я нашел способ получить текст, используя ниже:
element.all(By.xpath("//div[@class='grid-x grid-row
gridBody']/div")).each(function(element, index){
element.getText().then(function(text) {
console.log(''+text+'');
})
})
но я хочу знать, как сравнить этот текст с моим ожидаемым. Вкратце, я хочу знать, как можно сделать утверждение в приведенном выше сценарии.
Примечание: Пожалуйста, не говорите мне, что этот вопрос уже опубликован, потому что в предыдущих вопросах я мог найти решение, чтобы получить текст всех текстов, но не мог сравнить его с моим ожидаемым текстом.
Пожалуйста, дайте мне знать, если вам нужна какая-либо другая информация.
Я пытался использовать приведенное ниже, но я не думаю, что это хорошая практика:
if(index===0){
expect(text).equals("Campaign Title");
console.log("Step passed");
}
Спасибо за помощь. Но на самом деле это не помогло мне. Пожалуйста, найдите ниже обновленный код:
Then(/^User clicks and gets all the text for header details$/, async() => {
await search.headerActiveCampaign.each(function(element, index){
element.getText().then(function(text) {
console.log(''+text+'');
expectedTextArray[]=['Campaign Title','Order Number','Air
Dates','Amounts','Status']
expect(search.headerActiveCampaign.getText()).toBe(expectedArray);
});
})
});
Здесь, в этом поиске «search.headerActiveCampaign» находится объект страницы, а headerActiveCampaign - это webelement, как показано ниже:
public headerActiveCampaign: ElementArrayFinder;
this.headerActiveCampaign=element.all(By.xpath("//div[@class='grid-x
grid- row gridHead']"));
Ожидается, что TextArray [] выдаст мне ошибку, из-за которой невозможно найти его. Что мне теперь делать? Пожалуйста, обновите код.
В моем файле pages.ts я написал в следующем формате:
import { $, ElementFinder , element,By, by, ElementArrayFinder} from "protractor";
export class SearchPageObject {
public headerActiveCampaign: ElementArrayFinder;
constructor() {
this.headerActiveCampaign=element.all(By.xpath("//div[@class='grid-x grid-row gridHead']"));
}
}
Итак, если я использую "const", то он не работает, а в приведенном ниже объявлении он не идентифицирует ожидаемый текстовый массив, хотя я объявляю его как "const"
expect(search.headerActiveCampaign.getText()).toBe(expectedTextArray);