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