2015-11-10 2 views
2

В настоящее время я использую следующие команды & Target в Selenium IDE, чтобы проверить точный текст мета описанияпроверка наличия мета-описания с использованием Selenium IDE?

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

Я хотел бы проверить, если мета описание между 145 и 165 символов, чтобы увидеть, если это существует. таким образом, когда описание будет изменено, тест будет терпеть неудачу только в том случае, если описание не превышает 145 строк или более 165 (что в любом случае не может быть мета-описанием)

Может ли кто-нибудь помочь мне написать это выражение? если предположить какую-то переменную необходимо при содержании, чтобы проверить длину ..

ответ

0

Вы можете выполнить этот 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 на конечное значение, потому что содержимое возвращается с ""

Он возвращает true или false.

Или вы можете оценить мета описания содержания и применять валидации внутри вашего приложения, как

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

Благодарю. он работает немного, а затем начинает сбой случайных страниц, которые действительно заполняют свои метаописания. не знаю, почему, но я пришел немного дальше из-за вашего поста. Благодарю. edit: на самом деле скрипт работает нормально. имел пару под 144 символом. благодаря! thumbs up –

+0

@TestWater Вы можете получить только контент с 'document.evaluate ("/html/head/meta [@ name = 'description'] ", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null) .singleNodeValue.content' и примените ваши проверки внутри своего приложения ... И если это сработало для вас, проверьте правильность ответа. –

0

Вот то, что я считаю, лучше, более Selenese кода (используемым/читаемый):

<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> 
Смежные вопросы