目前,我正在使用以下命令&在Selenium IDE中定位以验证元描述的确切文本
verifyelementpresent : //meta[@name='description' and @content='description here']
我想检查元描述是否在145到165个字符之间,看它是否存在。那样,当描述发生变化时,如果描述低于145行或超过165(无论如何元描述都不能),测试将失败。
任何人都可以帮我写这个表达吗?假设在内容下需要某种变量来检查...的长度。
答案 0 :(得分:0)
您可以使用selenium执行此javascript:
document.evaluate("/html/head/meta[@name='description']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.content.length >= 144
&& document.evaluate("/html/head/meta[@name='description']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.content.length <= 166;
您需要从初始值中减去1并在结束值处加1,因为内容以&#34;&#34;&#34;
返回
返回true或false。
或者,您可以评估元描述内容并在应用内部应用验证,例如
document.evaluate("/html/head/meta[@name='description']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.content
答案 1 :(得分:0)
以下是我认为更好,更精细的代码(可用/可读):
<tr>
<td>storeAttribute</td>
<td>//meta[@name="description"]@content</td>
<td>meta_val</td>
</tr>
<tr>
<td>verifyEval</td>
<td>storedVars['meta_val'].length > 145 && storedVars['meta_val'].length<165;</td>
<td>true</td>
</tr>
<tr>
<td>storeEval</td>
<td>storedVars['meta_val'].length;</td>
<td>meta_length</td>
</tr>
<tr>
<td>echo</td>
<td>${meta_length}</td>
<td></td>
</tr>