Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.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_Html_Css_Selenium_Nightwatch - Fatal编程技术网

Javascript 如何验证搜索中仅存在匹配的元素?

Javascript 如何验证搜索中仅存在匹配的元素?,javascript,html,css,selenium,nightwatch,Javascript,Html,Css,Selenium,Nightwatch,我知道标题不好,但很难用几句话来解释 我在夜视上实现了自动化,遇到了一些让我感到困惑的事情,因为我习惯于只为自动化而在JS上编码。通常,很容易验证元素是否存在。但是对于这一点,我有一个html元素来显示搜索结果,我需要验证结果是否只包含元素 因此,在本例中,我需要确保实体结果div上的所有结果项只有提示值片段匹配等于-1000000.0和提示属性等于cpuLimit:的结果 <div class="results" style=""> <!----> <

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

我在夜视上实现了自动化,遇到了一些让我感到困惑的事情,因为我习惯于只为自动化而在JS上编码。通常,很容易验证元素是否存在。但是对于这一点,我有一个html元素来显示搜索结果,我需要验证结果是否只包含元素

因此,在本例中,我需要确保
实体结果
div上的所有
结果项
只有
提示值片段匹配
等于
-1000000.0
提示属性
等于
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>

结果
资源
资料来源:cz0
cpuLimit:
-1000000.0
资源
资料来源:cz0
cpuLimit:
-1000000.0
资源
资料来源:cz0
cpuLimit:
-1000000.0
资源
资料来源:cz0
cpuLimit:
-1000000.0

下面我定义了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)

您想如何确保entity results div上的所有结果项都只有提示val fragment match等于-1000000.0且提示prop等于cpuLimit:。。。?代码测试?