Перейти к содержимому

Aleksey.Vlasov

Регистрация: 03 окт 2013
Offline Активность: 06 ноя 2015 07:44
-----

#142091 Подскажите, как проверить с помощью selenium IDE css элементы?

Написано Aleksey.Vlasov 26 июня 2015 - 10:50

<tr>
    <td>verifyEval</td>
    <td>window.getComputedStyle(window.document.getElementById('id-элемента'),null).getPropertyValue('background-color');</td>
    <td>rgb(251, 251, 251)</td>
</tr>

 

или

 

<tr>
    <td>storeEval</td>
    <td>window.getComputedStyle(window.document.querySelector('css селектор')).getPropertyValue('border-top-color');</td>
    <td>rgb</td>
</tr>

<tr>
    <td>echo</td>
    <td>${rgb}</td>
    <td></td>
</tr>


  • 2


#133701 изменение ссылки в браузере

Написано Aleksey.Vlasov 01 сентября 2014 - 12:56

storeLocation - команда для сохранения текущего URL, который прописан в адресной строке браузера, в переменную.

storeLocation | i

echo | ${i}

Т.е. можно с помощью этой команды сохранить адрес активного окна, а затем уже его вставить в любом месте. С помощью

open | ${i}

Соответственно если URL сохранён в переменную, то можно от туда (из url) выцепить нужную информацию (id товара и пр.), или добавить к ней (переменной) ещё что-нибудь (например, ${i}/catalog) и уже открыть новую ссылку.


  • 1


#133648 изменение ссылки в браузере

Написано Aleksey.Vlasov 29 августа 2014 - 08:05

Браузерная строка управляется с помощью стандартной команды open.

open / url

вместо url может быть переменная с любым окончанием, наприме ${i}/catalog.

Можно ещё сохранить значение из строки браузера с помощью storeLocation, а уже затем добавить новую строку и открыть в браузере


  • 1


#129843 Сравнение в Selenium IDE

Написано Aleksey.Vlasov 21 апреля 2014 - 10:11

 

Возможно ошибка из-за того, что к selenium ide не подключено Core разрешение "user-extensions.js"

storeEval || window.document.querySelectorAll("phone").length || number - если селектор правильный, должно быть так.

Посмотри через дополнение к мозилле "FirePath", правильно ли определён селектор. В этом дополнении при наведение на нужный элемент выдастся правильный css путь и внизу будет указано количество элементов с этим селектором.

echo || ${number} || - вывод количества элементов с селектором phone.

спасибо вам огромное, все работает))

вы были правы, не был подключен файл "user-extensions.js".

 

Не за что. Если будут ещё вопросы, пишите. Можно в пм.

Если будете html тест проигрывать через selenium server, то аналогично не забудьте в терминале прописать

java -jar Путь/selenium-server-standalone-2.39.0.jar -userExtensions Путь/user-extensions.js

 

К сожалению, HTML тесты с if, снятием скриншотов, querySelector и прочими (так сказать специфичными действиями для Selenium IDE) у меня работают только в Mozilla Firefox. Хотя этого бывает достаточно.


  • 1


#129829 Сравнение в Selenium IDE

Написано Aleksey.Vlasov 21 апреля 2014 - 05:31

Возможно ошибка из-за того, что к selenium ide не подключено Core разрешение "user-extensions.js"

storeEval || window.document.querySelectorAll("phone").length || number - если селектор правильный, должно быть так.

Посмотри через дополнение к мозилле "FirePath", правильно ли определён селектор. В этом дополнении при наведение на нужный элемент выдастся правильный css путь и внизу будет указано количество элементов с этим селектором.

echo || ${number} || - вывод количества элементов с селектором phone.


  • 1


#129799 Сравнение в Selenium IDE

Написано Aleksey.Vlasov 18 апреля 2014 - 13:26

Можно вычислить количество элементов (товаров на странице) и сравнить с полученным числом из "готовых предложений". Я бы сделал вот так

1. Получаем количество элементов в результатах выдачи поиска

storeEval || window.document.querySelectorAll("селектор css (блока товара или что-нибудь ещё, что одинаково и появится у всех точно").length || number

2. Удаляем всё ненужное, оставляем только цифры

storeText || локатор строчки "товарных предложений" || text

storeEval || storedVars['text'].replace(/[\\s'(,^а-яА-Я)]/g, "") || text

И обычно я перестраховываюсь. Т.е. на всякий пожарный сохраненную переменную преобразую в число )))

storeEval || parseInt(storedVars['text'].match(/\d+/)) || text

Остаётся одно число

3. И сравниваем

assertEval || +${number} == +${text} || true

 

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


  • 1