Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在我的应用程序中,我有一个以表格格式显示的请求编号(字符串)列表,它有分页功能,所以有多页目录_Javascript_Cypress - Fatal编程技术网

Javascript 在我的应用程序中,我有一个以表格格式显示的请求编号(字符串)列表,它有分页功能,所以有多页目录

Javascript 在我的应用程序中,我有一个以表格格式显示的请求编号(字符串)列表,它有分页功能,所以有多页目录,javascript,cypress,Javascript,Cypress,我有一个for循环来迭代页面,并使用每个块来迭代该页面表中的请求号。当表中的request no与我的请求匹配时,它应该选择并退出循环。我被困在这里,因为我无法打破这个循环 M_SelectRequestNoThen(request) { let exit = true; let i; cy.wait(500); this.E_TotalPages() .invoke("text") .then((text) =&g

我有一个for循环来迭代页面,并使用每个块来迭代该页面表中的请求号。当表中的request no与我的请求匹配时,它应该选择并退出循环。我被困在这里,因为我无法打破这个循环

 M_SelectRequestNoThen(request) {
    let exit = true;
    let i;
    cy.wait(500);

    this.E_TotalPages()
      .invoke("text")
      .then((text) => {
        let total = text;
        cy.log("totalpages", total);

        for (i = 0; i < total; i++) {
          cy.log("i inside while", i);

          this.E_RequestRows().each(($el, $index) => {
            cy.wrap($el)
              .invoke("text")
              .then((text) => {
                cy.log("text", text);

                if (text.trim().includes(request)) {
                  this.E_RequestSelect(request).click();
                  exit = false;
                }
              });
          });
          i++;
          if (exit) {
            this.E_NextButton().click();
          } else {
            break;
          }
        }
      });
  }
M\u选择RequestNothen(请求){
让exit=true;
让我;
cy.wait(500);
此.E_TotalPages()
.invoke(“文本”)
。然后((文本)=>{
让总数=文本;
cy.log(“总页数”,总计);
对于(i=0;i{
cy.wrap($el)
.invoke(“文本”)
。然后((文本)=>{
cy.log(“文本”,文本);
if(text.trim()包括(请求)){
此.E_请求选择(请求)。单击();
退出=假;
}
});
});
i++;
如果(退出){
此.E_NextButton()单击();
}否则{
打破
}
}
});
}

因为我不能使用闯入然后阻塞;使用boolean exit,但即使在then块之外也不会得到更新值。所以,即使找到我的请求,它也会导航到下一页。那么,在满足“if(text.trim().includes(request))”条件之后,如何中断for循环呢?

这里存在一些控制流问题,主要是您试图在异步进程内部中断。但是,我认为您不需要这种复杂性,可以更好地利用测试框架来做一些更简单的事情(可能有点不合适,因为我不确定您在测试什么):


这里有一些关于控制流的问题,主要是您试图在一个异步系统中打破控制流。但是,我认为您不需要这种复杂性,可以更好地利用测试框架来做一些更简单的事情(可能有点不合适,因为我不确定您在测试什么):


我的情况是我有4页的列表。如果在第一页中找不到我的字符串,则必须单击下一页。以这种方式,它必须迭代列表和页面,直到找到字符串,然后退出。如果它是单页场景,我的每个块都可以工作。如果在整个第一页中找不到字符串,我必须在每个块之外进行检查,以转到下一页或中断循环。

我的情况是,我有4页列表。如果在第一页中找不到我的字符串,则必须单击下一页。以这种方式,它必须迭代列表和页面,直到找到字符串,然后退出。如果它是单页场景,我的每个块都可以工作。如果在整个第一页中找不到字符串,我必须在每个块之外进行检查,以转到下一页或中断循环。

Thx。我尝试了您提到的代码。如果($el.contains(request))**不能直接工作,它说contains不是一个函数。我必须使用“.invoke”(“text”)。然后((text)=>{**'也不能在每个块中使用break,正如您所提到的,它会抛出语法错误。我的场景是我有4页列表。如果在第一页中找不到我的字符串,它必须单击下一页。以这种方式,它必须迭代列表和页面,直到找到字符串,然后退出。如果在整个第一页中找不到字符串,如何我可以在每个块外检查以进入下一页或中断循环吗?Thx。我尝试了您提到的代码。如果($el.contains(request))**不能直接工作,并且它说contains不是函数。我必须使用“.invoke”(“text”)。然后((text)=>{**'也不能在每个块中使用break,正如您所提到的,它会抛出语法错误。我的场景是我有4页列表。如果在第一页中找不到我的字符串,它必须单击下一页。以这种方式,它必须迭代列表和页面,直到找到字符串,然后退出。如果在整个第一页中找不到字符串,如何我是否可以在每个街区外检查以进入下一页或打破循环?
this.E_RequestRows().each(($el, $index) => {
  if ($el.contains(request)) {
    this.E_RequestSelect(request).click();
    break; // assuming you want to stop this iteration when you find your element
  }
});