<parent>
<child class="a"></child>
<child class="b1"></child>
</parent>
<parent>
<child class="a"></child>
<child class="b2"></child>
</parent>
и есть однозначный css-селектор для каждого 2-го child-элемента - .b1, .b2 ...
Существует ли селектор для получения предыдущего от child.b* дочернего элемента, т.е. child.a ? Что-то вроде .b1 - .a (по аналогии с .a + .b1)
Спустя 1 час, 47 минут, 16 секунд (4.03.2012 - 13:45) alex12060 написал(а):
посмотри в сторону псевдоклассов.
Спустя 9 часов, 33 минуты, 1 секунда (4.03.2012 - 23:18) Invis1ble написал(а):
alex12060
смотрел, у тебя есть конкретный пример по данной задаче?
смотрел, у тебя есть конкретный пример по данной задаче?
Спустя 9 минут, 34 секунды (4.03.2012 - 23:28) sergeiss написал(а):
Invis1ble - вроде как, нету именно такого. А что хочешь сделать-то? Почему бы просто в классе а не указать то, что тебе нужно там получить?
Спустя 3 минуты, 21 секунда (4.03.2012 - 23:31) Invis1ble написал(а):
sergeiss
Цитата |
А что хочешь сделать-то? |
Хочу для каждого второго child-элемента (child.b*) получить его брата (child.a)
Цитата |
Почему бы просто в классе а не указать то, что тебе нужно там получить? |
это естественно самый простой выход, но я не имею доступа к изменению разметки. В данном случае я выступаю чисто как юзер.
Пишу приемочный тест. Нужно протестировать страницу на наличие определенных узлов и на конкретный текст в этих узлах. Использую WebDriver (Selenium).
Спустя 5 минут Invis1ble написал(а):
Можно конечно по XPath-селектору получить, но он больше зависит от разметки, имхо. Следовательно более высокая вероятность, что тест провалится при редизайне.
Спустя 9 минут, 48 секунд (4.03.2012 - 23:41) sergeiss написал(а):
Цитата (Invis1ble @ 5.03.2012 - 00:31) |
но я не имею доступа к изменению разметки. |
Или я тебя не понял, или ты меня не понял. Я имел ввиду, что в стилях указать что-то для класса а.
Опять же, если "а" - первый child, то тогда можно использовать такую хрень, где вообще классов нету :) :
div input:first-child
{
color:#339999;
background-color:#996699;
}
<div>
<input type="text" class="a" />
<input type="text" class="b1" />
</div>
<div>
<input type="text" class="a" />
<input type="text" class="b2" />
</div>
Спустя 7 минут, 47 секунд (4.03.2012 - 23:49) Invis1ble написал(а):
sergeiss
Я тебя понял, просто не совсем точно выразился видимо.
Я не могу править ни html, ни css, т.е. вообще какой-либо код. Представь, что ты подконнектился к http://phpforum.ru и тебе нужно найти такой элемент
input:first-child - это понятно, просто не хочу привязываться к родителю, т.к. наименьшая вероятность изменения именно класса для .b*, т.е. бОльшая вероятность, что при изменении разметки тест пройдет успешно.
Все-таки подозреваю, что проще через xpath сделать. Пошел читать сабж
Я тебя понял, просто не совсем точно выразился видимо.
Я не могу править ни html, ни css, т.е. вообще какой-либо код. Представь, что ты подконнектился к http://phpforum.ru и тебе нужно найти такой элемент

input:first-child - это понятно, просто не хочу привязываться к родителю, т.к. наименьшая вероятность изменения именно класса для .b*, т.е. бОльшая вероятность, что при изменении разметки тест пройдет успешно.
Все-таки подозреваю, что проще через xpath сделать. Пошел читать сабж

Спустя 10 минут, 42 секунды (4.03.2012 - 23:59) redreem написал(а):
думаю только скриптом
Спустя 36 минут, 41 секунда (5.03.2012 - 00:36) Invis1ble написал(а):
Задача решена с помощью xpath-локаторов. Примеры для поиска:
//*[@class='b1']/preceding-sibling::*[@class='a']
//*[@class='b2']/preceding-sibling::*[@class='a']
//*[@class='b1']/preceding-sibling::*[@class='a']
//*[@class='b2']/preceding-sibling::*[@class='a']
Спустя 9 минут, 24 секунды (5.03.2012 - 00:45) redreem написал(а):
пипец. я о таких зверях и не слышал
кроссбраузерно?

Спустя 4 минуты, 50 секунд (5.03.2012 - 00:50) Invis1ble написал(а):
Да, css-селекторы нервно курят в сторонке, глядя на возможности xpath 
Насчет кроссбраузерности - не в курсе, вроде бы да. Но мне это не принципиально, главное, что firefox понимает, на котором проводятся тесты. У IE могут быть проблемы, т.к. слышал, что xpath он эмулирует через css

Насчет кроссбраузерности - не в курсе, вроде бы да. Но мне это не принципиально, главное, что firefox понимает, на котором проводятся тесты. У IE могут быть проблемы, т.к. слышал, что xpath он эмулирует через css
_____________
Профессиональная разработка на заказ
Я на GitHub | второй профиль