繁体   English   中英

“For”循环在使用 xpath 检查对象时未选择“if”条件

[英]"For" loop not picking up the "if" condition when it checks for object using xpath

我是 JS 的新手,正面临一个我找不到解决方案的问题。 我正在编写一个脚本来使用空手道/硒自动执行“清理”过程。

设想:

  1. 转到网页并搜索特定条件。
  2. 在填充的结果中,获取单个列中的所有值。 然后在同一个搜索框中,搜索从列中抓取的每个值。
  3. 在结果中,为填充的结果单击删除。
  4. 有些行会抛出异常,在这种情况下,我们想返回并尝试列值数组中的下一个项目,直到所有项目都被删除或剩余项目都是引发异常的项目。

到目前为止我有这个:

driver.input('#searchField', ['Mobile', Key.ENTER], 200); //here I am using Karate/Selenium to enter the search criteria on the UI. 
function() {
  var searchResult = false;
  searchResult = driver.exists('//table//tr');
  var errorPage = driver.exists('#exception');

  do {
    var deleteCriteria = driver.scriptAll('//table//tr//td[3]', '_.innerText'); //Here I am grabbing actual values I need to search by across the entire column and putting it in array form.
    for (i = 0; i < deleteCriteria.length; i++) {
      driver.input('#searchField', [deleteCriteria[i], Key.ENTER], 200);
      driver.click('#deleteBtn');
      driver.click('#deleteNumber');
      driver.delay(10000);
      if (errorPage) {
        driver.back();
        driver.delay(10000);
        driver.back();
        driver.delay(10000);
      } else {
        continue;
      }
    }
  } while (searchResult);
}

问题:当异常页面确实显示时,没有启动 IF 块。 该脚本无法尝试找到要再次搜索的搜索框。 请指教。

PS-我知道我的“虽然”还不正确。 一旦有问题的问题得到解决,我会修复它。

代码var errorPage = driver.exists('#exception'); 运行一次并及时存储当时的状态。

如果你想知道它是否在当前时刻存在,你需要再次寻找它。

if (driver.exists('#exception')) {
  ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM