Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как javascript-ом проверить, что в css есть определлений елемент

css
javascript
Теги: #<Tag:0x00007f7b65303c60> #<Tag:0x00007f7b65303a80>

(toyen) #1

Нужно проверить есть ли в данном css content
.cmvItemTable td.outpatientbh:after, .cmvRequestProgramHeaderPanelGrid div.outpatientbh:after, .capItemTable td.outpatientbh:before {
content: url("/AMDOQ11-AerialPrime/javax.faces.resource/images/O_BH.png.faces");
position: absolute;
left: 3%;
top: 50%;
margin-top: -10px;
}


(Ray Romanov) #2

http://api.jquery.com/css/


(Stan) #3

В зачем проверять есть ли оно в реализации стиля, а не в использовании?


(Oleksandr Khotemskyi) #4

Я бы все-таки проверял через getCssValue или getAttribute
вот есть статья по теме - http://internetka.in.ua/selenium-webdriver-normalization/


(toyen) #5

так, все правильно. але проблема в тому, що в мене там список класів. Як зробити селект з одним класом я знаю, але що робити з списком?


#6

А что это даст? CSS накладываются друг на друга, и как это в итоге сработает на странице, неизвестно.
Если нужно проверить, есть ли реализация стиля в CSS, можно скачать CSS по прямой ссылке и проверить его текст.
Если нужно проверить, как это применяется на элементе, надо проверять разные элементы с каждым селектором из списка, т.к. на любой из этих селекторов может быть наложен другой стиль.


(Stan) #7

зачем советовать заранее неправильное? Как он этими методами проверит реализацию классов?


(toyen) #8

потрібно перевірити , чи на сторінці є таке content: url("/AMDOQ11-AerialPrime/javax.faces.resource/images/O_BH.png.faces"). Пошуком по xpath я не можу таке зробити. Я подумала написати скрипт, який буде це перевіряти.
Можна зробити так:
var element = document.getElementsByClassName(’.cmvItemTable td.outpatientbh’),
style = window.getComputedStyle(element),
top = style.getPropertyValue(‘content’);
Але в мене ціла купи класів в даному css. Або я чогось не розумію.
Зразу скажу, що в css і javascript я 0. Тому прошу допомоги тут. Дякую


(Stan) #9

Еще раз. Приведенный вами пример - реализация, а не использование css. Селениумом вы это проверите только если возьмете сурс всей страницы и спарсите строку внутри этого сорса.


#10

То, что в скобках - это не совсем class name, это некий CSS-селектор.

Просто я бы в принципе сделал иначе. Потому что смысл проверки - не то, что этот контент применяется где-то, где есть такой стиль.
Во-первых, таким образом мы тестируем не приложение, а реализацию применения CSS движком браузера.
Во-вторых, смысл проверки в том, что этот контент должен быть на определенных элементах. Самостоятельно составляем локаторы для каждого из этих элементов и проверяем. А иначе получается тестирование на основе имплементации. Почему мы должны брать список стилей из имплементации CSS? Может, там и есть баг?