3

Мне нужно увидеть, отображается ли текущая страница с правильным значком заголовка. Мы меняем значок в зависимости от того, где вы находитесь на сайте, и вам нужно сделать чек против него.Robot Framework - Selenium2library - проверьте значок страницы

Я попытался

Page Should Contain Image /bin/icons/1.ico 

HTML, который мы используем:

<link rel="shortcut icon" type="image/x-icon" href="/bin/icons/1.ico"/> 

Ключевое слово не работает .. Есть ли что-то еще, что я должен использовать? или это не поддерживается селеном для проведения такого теста?

+1

вы пробовали получать значение из 'href' атрибутов с [Получить элемент атрибута] (HTTP: //robotframework.org/Selenium2Library/Selenium2Library.html#Get%20Element%20Attribute)? –

+0

Как я могу найти локатор чего-то, что не отображается на странице? Он отображается на вкладке браузера. – Goralight

+0

Не знаю. Я просто спрашиваю, это то, что вы пытались выяснить. –

ответ

0

Выяснил это. Я в основном захватываю href связанного тега ссылки, а затем сравниваю их, используя ключевое слово «должно быть равным целям». Я бы решил это раньше, но тег ссылки на значок не был первым тегом ссылки. Ниже строки, которые я использовал:

${Favicon1} = Get Element Attribute //link[2]@href 
Should Be Equal As Strings ${Favicon1} http://localhost:8080/bin/icons/1.ico 

Большое спасибо Bryan Oakley для подталкивая меня в правильном направлении.

+0

Не делайте этого по двум причинам. Во-первых, вы, вероятно, хотели второй элемент ссылки, но это может легко измениться в будущей версии или сборке. Во-вторых, в xpath индексирование имеет более высокий приоритет, чем отношение, поэтому локатор фактически читает «получить любую ссылку, которая является 2-м ребенком своего родителя» (поверьте мне, хотя это и неинтуитивно, сначала это делает :). – Todor

1

According to the currently applied standards, правильный способ установить фавикон через тег ссылки, имеющие атрибут rel="icon", хотя некоторые сайты все еще используют rel="shortcut icon" (подробнее в ссылке в википедии выше). Это охватывает как XPath:

${loc}= xpath=//link[@rel="link" or @rel="shortcut icon"] 

Чтобы получить его значение, используйте нормальный robotframework подход:

${favicon}= Get Element Attribute  ${loc}@href 
+0

Я спросил и ответил на этот вопрос, прежде чем я действительно понял Xpath - и я согласен - мой ответ был очень ... неинтуитивным;). Я предполагаю, что я пытался сказать, это найти ссылку, которая содержит Favicon и сравнить ее с ожидаемой ссылкой. Ваш ответ более ясен и имеет больше смысла, чем мой ответ. – Goralight

+0

Рад помочь @Goralight. Кстати, в вашем решении я бы также предложил не идти «должен быть равен», скорее - должен содержать и искать путь после имени хоста - «/bin/icons/1.ico»; таким образом, случай будет применим к другим средам/развертываниям. – Todor

Смежные вопросы