首页 > 解决方案 > CodeceptJs - 获取元素列表并检查元素的属性

问题描述

我是 QA Automation,在 C#+Nunit+Webdriver 方面有 7 年以上的经验。现在我不得不切换到 CodeceptJS 并且找不到如何使用这个框架做一些常见的动作。请帮我解决下一个问题:

  1. 如何获取元素列表并获取此列表中特定元素的某些属性。在 C# 中,它将是这样的:

    var list = driver.FindElements(By.Xpath("*//xpath"));
    
  2. 如何检查元素是否在 customsteps 或 pageobject 中具有某些属性?

    module.exports = {
     MyElemThatIsNotAlwaysVisible_Likesubmenu: { id: "submenu" },
     MyElementThatIsAlwaysVisible_Likemuenu : {id: "menu"}
    
     function_click_onelement_that_notalwaysvisible () 
     {
       //here I want to check 
       if(MyElementThatIsAlwaysVisible.getattribute("class").contains("not-active"))
       {
          MyElementThatIsAlwaysVisible_Likemuenu.click();
          wait.until (MyElemThatIsNotAlwaysVisible_Likesubmenu.Displayed)
       }
       MyElemThatIsNotAlwaysVisible_Likesubmenu.Click();
     }
    }
    

标签: codeceptjs

解决方案


  1. 如果您想获取并使用列表做更多的事情,您可以使用:

await I.grabAttributeFrom('//img', 'src');

如果 xPath 匹配多个元素,则方法返回一个数组。文档参考在这里


  1. 如果您只需要验证属性是否存在,您可以使用:

    I.seeAttributesOnElements('//form', { method: "post"});

如文档中所述


推荐阅读