Typescript 如何获取量角器中所有元素的文本,并将其与预期文本进行比较?
这是我的第一篇文章,希望能得到一些帮助,因为我对量角器还不熟悉 我想获取div标记下所有web元素的文本,并将文本与预期文本进行比较。我找到了一种使用以下方法获取文本的方法:Typescript 如何获取量角器中所有元素的文本,并将其与预期文本进行比较?,typescript,npm,protractor,node-modules,cucumberjs,Typescript,Npm,Protractor,Node Modules,Cucumberjs,这是我的第一篇文章,希望能得到一些帮助,因为我对量角器还不熟悉 我想获取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(
element.all(By.xpath("//div[@class='grid-x grid-row
gridBody']/div")).each(function(element, index){
element.getText().then(function(text) {
console.log(''+text+'');
})
})
但是,我想知道如何将这篇课文与我的范例进行比较。总之,我想知道在上述场景中如何进行断言
注意:请不要告诉我这个问题已经发布了,因为在前面的问题中,我可以找到一个解决方案来获取所有Web元素的文本,但无法将其与预期文本进行比较
如果您需要任何其他信息,请告诉我
我尝试过使用以下方法,但我认为这不是一个好的做法:
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.HeaderActiveCompaign”搜索是页面对象,HeaderActiveCompaign是webelement,如下所示:
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
希望它能帮助你@AmrishSukumaran请不要编辑他们的答案来回复他们。请写一条评论或用更新的代码编辑您的问题。@Madhan我已经尝试过您之前给出的建议,但这对我不起作用。我已经更新了问题,请看一看并让我知道您的评论。@AmrishSukumaran请尝试更新的答案。如果这对您没有帮助,请告诉我。@Madhan我已经更新了问题。我已经按照您的建议进行了更改,但实际上并没有使用“const”标识声明keyword@AmrishSukumaran尝试删除
const
可能是因为声明的缘故。
expect(search.headerActiveCampaign.getText()).toBe(expectedTextArray);
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);
});
})
});