javascript - 如何验证搜索中是否只存在匹配元素?

标签 javascript html css selenium nightwatch

不好的标题,我知道,但很难用几句话来解释。

我在 nightwatch 上进行自动化,遇到了一些让我感到难过的事情,因为我习惯于在 JS 上编写代码仅用于自动化。通常,很容易验证某个元素是否存在。但是为此,我有一个显示搜索结果的 html 元素,我需要验证结果是否仅包含元素

所以,我需要确保所有 result-itementity-results 上div 只有 hint-val-fragment match 的结果等于 -1000000.0hint-prop等于 cpuLimit: , 在这个例子中。

<div class="results" style="">
   <!----> 
   <div>
      <div class="results-set-title">Results</div>
      <!----> 
      <div class="entity-results">
         <div class="result-item">
            <div class="result-item-label">
               <div class="result-item-name">Resources</div>
               <div class="result-item-source"><span>source:</span> <span>cz0</span></div>
            </div>
            <div class="result-item-hint">
               <div class="hint-prop">cpuLimit:</div>
               <div class="hint-val">
                  <div class="hint-val-fragment">
                  </div>
                  <div class="hint-val-fragment match">
                     -1000000.0
                  </div>
                  <div class="hint-val-fragment">
                  </div>
               </div>
            </div>
         </div>
         <div class="result-item">
            <div class="result-item-label">
               <div class="result-item-name">Resources</div>
               <div class="result-item-source"><span>source:</span> <span>cz0</span></div>
            </div>
            <div class="result-item-hint">
               <div class="hint-prop">cpuLimit:</div>
               <div class="hint-val">
                  <div class="hint-val-fragment">
                  </div>
                  <div class="hint-val-fragment match">
                     -1000000.0
                  </div>
                  <div class="hint-val-fragment">
                  </div>
               </div>
            </div>
         </div>
         <div class="result-item">
            <div class="result-item-label">
               <div class="result-item-name">Resources</div>
               <div class="result-item-source"><span>source:</span> <span>cz0</span></div>
            </div>
            <div class="result-item-hint">
               <div class="hint-prop">cpuLimit:</div>
               <div class="hint-val">
                  <div class="hint-val-fragment">
                  </div>
                  <div class="hint-val-fragment match">
                     -1000000.0
                  </div>
                  <div class="hint-val-fragment">
                  </div>
               </div>
            </div>
         </div>
         <div class="result-item">
            <div class="result-item-label">
               <div class="result-item-name">Resources</div>
               <div class="result-item-source"><span>source:</span> <span>cz0</span></div>
            </div>
            <div class="result-item-hint">
               <div class="hint-prop">cpuLimit:</div>
               <div class="hint-val">
                  <div class="hint-val-fragment">
                  </div>
                  <div class="hint-val-fragment match">
                     -1000000.0
                  </div>
                  <div class="hint-val-fragment">
                  </div>
               </div>
            </div>
         </div>
      </div>
   </div>
</div>

最佳答案

下面我定义了 isValid,它应用于传递给 allValid 的数组中的每个元素。此功能可以在 DOM 更新后应用,您需要重新检查元素:

const isValid = elem => {
    const val = elem.getElementsByClassName('hint-val-fragment match')[0].innerHTML.trim()
    const hint = elem.getElementsByClassName('hint-prop')[0].innerHTML.trim()
    return (
        val === '-1000000.0'
        && hint === 'cpuLimit:'
    )
}
const allValid = arr => arr.every(isValid)


const parent = document.getElementsByClassName('entity-results')[0]
const children = Array.from(parent.children)


const allAreValid = allValid(children)

关于javascript - 如何验证搜索中是否只存在匹配元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57942645/

相关文章:

jquery - 脚本未在页面加载时执行

html - 在响应表中固定到底部时,Tfoot 宽度未对齐

javascript - (Angular 2+)在 *ngFor 中使用 ng-content,无法访问循环变量

javascript - 如何对每个产品实现星级评定制度

javascript - 自定义/样式提示窗口?

jquery - 将 div 组居中作为响应式网站标题

c# - 在不触发验证客户端的情况下检查验证组是否有效

javascript - Angular 中的类型 'filter' 错误获取属性 'OperatorFunction<any, any>' 不存在

jquery - 如何创建切换按钮?

html - 所有以开头的标签