Специалисты по Xpath Отзовитесь!

GoogleMo

Client
Регистрация
13.04.2014
Сообщения
223
Благодарностей
8
Баллы
18
Задачка у меня в ВК вот такая:
1)Нужно брать элементы из
<div class="friends_user_row clear_fix" id="friends_user_row914109"> </div>
Как несложно догадаться здесь важен лишь класс, айди будет всегда разный

2)Далее нам нужны 3 элемента внутри, каждый из которых предстоит сопоставлять с определенным условием, а потом действовать:
а) Первый элемент(тройное вложение, нам нужен текст):
<div id="res914109">
<div class="msg">
<div class="msg_text">Пользователь запретил приглашать себя в сообщества.
</div>
</div>
</div>
б) Второй элемент(двойное вложение, нам нужно имя и ссылка):
<div class="friends_user_info">
<div class="friends_field friends_field_title">
<a href="/bikefiction" onclick="return nav.go(this, event);">Дмитрий Лященко</a>
</div>
</div>
в) Третий элемент (одно вложение, нам нужен текст кнопки):
<div class="friends_controls">
<button class="flat_button button_small button_wide" onclick="return Friends.inviteToGroup(this, 7874818, 5728924, 0, '079b26498acf48b03e')">Пригласить в группу</button>
</div>

Насколько я разобрался в Xpath именно с его помощью легче всего выполнить эту задачу, но я слабоват в нем, поэтому прошу помощи или консультации у более опытных товарищей!
 

sydoow

Client
Регистрация
22.06.2011
Сообщения
273
Благодарностей
141
Баллы
43
1)Нужно брать элементы из
<div class="friends_user_row clear_fix" id="friends_user_row914109"> </div>
Как несложно догадаться здесь важен лишь класс, айди будет всегда разный
//*[contains(@id,'friends_user_row']])]

<div id="res914109">
<div class="msg">
<div class="msg_text">Пользователь запретил приглашать себя в сообщества.
</div>
</div>
</div>
//*[contains(@id,'res']])]//*[@=class='msg_text']

б) Второй элемент(двойное вложение, нам нужно имя и ссылка):
<div class="friends_user_info">
<div class="friends_field friends_field_title">
<a href="/bikefiction" onclick="return nav.go(this, event);">Дмитрий Лященко</a>
</div>
</div>
//*[@class='friends_user_info']//*[contains(@onclick,'nav.go')]
Чтобы получить ссылку - нужно этим же кодом получить "значение атрибута 'href'"

в) Третий элемент (одно вложение, нам нужен текст кнопки):
<div class="friends_controls">
<button class="flat_button button_small button_wide" onclick="return Friends.inviteToGroup(this, 7874818, 5728924, 0, '079b26498acf48b03e')">Пригласить в группу</button>
</div>
//*[contains(@onclick,'inviteToGroup')]
 

GoogleMo

Client
Регистрация
13.04.2014
Сообщения
223
Благодарностей
8
Баллы
18
//*[contains(@id,'friends_user_row']])]


//*[contains(@id,'res']])]//*[@=class='msg_text']


//*[@class='friends_user_info']//*[contains(@onclick,'nav.go')]
Чтобы получить ссылку - нужно этим же кодом получить "значение атрибута 'href'"


//*[contains(@onclick,'inviteToGroup')]
Вы связи между родителем и потомками полностью проигнорили, без них эти данные привязать не к чему, и будет куча разрозненной информации.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)