Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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 Nightwatch JS-IF-Else-IF断言_Javascript_If Statement_Nightwatch.js - Fatal编程技术网

Javascript Nightwatch JS-IF-Else-IF断言

Javascript Nightwatch JS-IF-Else-IF断言,javascript,if-statement,nightwatch.js,Javascript,If Statement,Nightwatch.js,我是Javascript(Nightwatch JS)和编程新手 我的If、Else-If、Else测试用例有一个问题,没有继续执行Else-If语句 我想这是因为IF语句中的条件是断言(.expect.element();) 我想知道是否有人能给我一些关于如何处理if语句的建议 基本上,我想验证: If (checkbox is un-clickable) { run set code; } Else if (this checkbox is clickable) { run set c

我是Javascript(Nightwatch JS)和编程新手

我的If、Else-If、Else测试用例有一个问题,没有继续执行Else-If语句

我想这是因为IF语句中的条件是断言(.expect.element();)

我想知道是否有人能给我一些关于如何处理if语句的建议

基本上,我想验证:

If (checkbox is un-clickable) {
run set code; 
} Else if (this checkbox is clickable) {  
run set code;
} Else { 
.end();
}
这是我做的样本测试

“卸载任务模块”:功能(卸载模块){
卸载模块
.url('http://drupal8.develop:8091/admin/modules/uninstall')
.setValue(“#编辑文本”,“任务”)
.暂停(800);
uninstallModule.expect.element(“#编辑卸载任务”).to.be.present;
uninstallModule.waitForElementVisible('/*[@id=“system modules uninstall”]/table/tbody/tr[31]/td[3]/div/div/ul/li/a',1000,false);
if(uninstallModule.expect.element(“#编辑卸载任务”).to.not.be.enabled){
卸载module.expect.element('body').text.to.contain('Remove mission entities'))
卸载模块
.url('http://drupal8.develop:8091/admin/modules/uninstall/entity/mission')
.verify.urlEquals('http://drupal8.develop:8091/admin/modules/uninstall/entity/mission');
卸载module.expect.element('body').text.to.contain('确定要删除所有任务实体吗?');
卸载模块。单击('xpath','/*[@id=“编辑提交”]”);
卸载模块
.暂停(10000)
。验证。可见(“主体>分区布局-容器>主要>分区区域区域-突出显示>分区>h2”,“所有任务实体均已删除”);
}else if(uninstallModule.expect.element(“#编辑卸载任务”).to.be.enabled){
卸载模块
.url('http://drupal8.develop:8091/admin/modules/uninstall')
.setValue(“#编辑文本”,“任务”);
卸载模块。单击(“#编辑卸载任务”);
卸载模块。暂停(800);
卸载模块。验证。URLEQUALES(“http://drupal8.develop:8091/admin/modules/uninstall/confirm");
卸载模块。单击('xpath','/*[@id=“编辑提交”]”);
卸载模块。暂停(1000);
卸载module.verify.visible('body>div.layout-container>main>div.region.region-highlighted>div.messages.messages--status',“所选模块已卸载”);
}否则{
卸载module.end();
}
},		

}
关于nightwatch(和其他e2e测试框架),有两件事需要了解

  • 所有操作都是异步的。由于框架的存在,即使代码看起来是同步的,但最终,一切都是异步的读取值也需要异步代码
  • 使用预期时,如果未验证预期,则代码会抛出错误;不能使用它们读取值
  • 使用nightwatch,您可以使用读取所需的值:

    client.getAttribute('#edit-uninstall-missions', 'enabled', result => {
      // I'm not sure about the type returned in result.value
      // you can test it and adjust
      const enabled = result && result.value !== "false" 
                        && result.value !== false;
    
      if (enabled){
        // Continue your test here
      } else {
        // Another test here
      }
    });
    

    关于nightwatch(和其他e2e测试框架),需要了解两件事

  • 所有操作都是异步的。由于框架的存在,即使代码看起来是同步的,但最终,一切都是异步的读取值也需要异步代码
  • 使用预期时,如果未验证预期,则代码会抛出错误;不能使用它们读取值
  • 使用nightwatch,您可以使用读取所需的值:

    client.getAttribute('#edit-uninstall-missions', 'enabled', result => {
      // I'm not sure about the type returned in result.value
      // you can test it and adjust
      const enabled = result && result.value !== "false" 
                        && result.value !== false;
    
      if (enabled){
        // Continue your test here
      } else {
        // Another test here
      }
    });
    
    这就是我所做的

        uninstallModule.getAttribute('#edit-uninstall-missions', 'disabled', function(results) {
    
              console.log(results.value);
              if (results.value == "true") {
                console.log("It's true bro");
              } else if (results.value != "true") {
                console.log ("It's null");
              } else {
                console.log("It's Neither");
              }
        });
    
    这就是我所做的

        uninstallModule.getAttribute('#edit-uninstall-missions', 'disabled', function(results) {
    
              console.log(results.value);
              if (results.value == "true") {
                console.log("It's true bro");
              } else if (results.value != "true") {
                console.log ("It's null");
              } else {
                console.log("It's Neither");
              }
        });
    

    谢谢你,你帮了我大忙!谢谢你,你帮了我大忙!