使用 selenium IDE 检查元描述是否存在?

checking if a meta description is present using selenium IDE?

目前,我在 Selenium IDE 中使用以下命令和目标来验证元描述的确切文本

 verifyelementpresent :    //meta[@name='description' and @content='description here']

我想检查元描述是否在 145 到 165 个字符之间,看看它是否存在。这样当描述发生变化时,测试只会在描述少于 145 行或超过 165 行时失败(无论如何元描述都不能)

谁能帮我写下这个表达式?假设在内容下需要某种变量来检查 ..

的长度

您可以使用 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;

You need to subtract 1 from the initial value and add 1 at the end value because the content is returned with ""

它returns对或错。

或者您可以评估元描述内容并在您的应用中应用验证,例如

document.evaluate("/html/head/meta[@name='description']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.content

这是我认为更好、更硒化的代码 (useable/readable):

<tr>
    <td>storeAttribute</td>
    <td>//meta[@name=&quot;description&quot;]@content</td>
    <td>meta_val</td>
</tr>
<tr>
    <td>verifyEval</td>
    <td>storedVars['meta_val'].length &gt; 145 &amp;&amp; storedVars['meta_val'].length&lt;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>