这是我的第一篇文章,正在寻求帮助,因为我是量角器的新手。
我想在div标签下获取所有Web元素的文本,并将其与预期文本进行比较。我找到了一种使用以下方法获取文本的方法:
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是如下所示的网络元素:
public headerActiveCampaign: ElementArrayFinder;
this.headerActiveCampaign=element.all(By.xpath("//div[@class='grid-x
grid- row gridHead']"));
expectedTextArray []向我抛出一个找不到它的错误。我现在该怎么办?请更新代码。
在我的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”,但它不能识别ExpectedTextArray。
expect(search.headerActiveCampaign.getText()).toBe(expectedTextArray);
答案 0 :(得分:1)
const headerActiveCampaign = element.all(By.xpath("//div[@class='grid-x grid-row gridBody']/div");// paste this IN YOUR PAGE object FILE.
const expectedTextArray[]=['',''] //Add the text that you expect as array
//Now to compare the actual and expect use the below code.
Then(/^User clicks and gets all the text for header details$/, async() => {
expect(search.headerActiveCampaign.getText()).toBe(expectedTextArray);
});
})
});
希望它对您有帮助