Typescript 如何获取量角器中所有元素的文本,并将其与预期文本进行比较?

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(

这是我的第一篇文章,希望能得到一些帮助,因为我对量角器还不熟悉

我想获取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+'');
  })
  })
但是,我想知道如何将这篇课文与我的范例进行比较。总之,我想知道在上述场景中如何进行断言

注意:请不要告诉我这个问题已经发布了,因为在前面的问题中,我可以找到一个解决方案来获取所有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); 
       });      
       })
       });