2016-04-12 2 views
0

У меня есть следующий HTML структура:Селена: Выберите косвенные родственный элемент

<div class="UFICommentContentBlock"> 
    <div class="UFICommentContent"> 
    <span> 
    <span> 
     <span data-ft="{"tn":"K"}"> 
      <span class="UFICommentBody"> 
       <span>My comment text</span> 
      </span> 
     </span> 
    </span> 
    <div class="UFITranslatedText"></div> 
    <span></span> 
</div> 
<div class="fsm fwn fcg UFICommentActions"> 
    <a class="UFILikeLink" data-ft="{"tn":">"}" data-testid="ufi_comment_like_link" href="#" role="button" title="Like this comment">Like</a> 
    <span role="presentation" aria-hidden="true"> · </span> 
    <a class="UFIReplyLink" href="#" role="button">Reply</a> 
    <span role="presentation" aria-hidden="true"> · </span> 
    <span> 
</div> 
<a class="UFICommentCloseButton _5upq _5upr _5upp _42ft" data-testid="ufi_comment_close_button" data-hover="tooltip" data-tooltip-alignh="center" data-tooltip-content="Edit or delete this" href="#" id="js_c"> </a> 
</div> 

Это Facebook комментарий область. У меня есть несколько комментариев ниже сообщения, каждый из них имеет одинаковую структуру. я могу найти нужный комментарий по

xpath("//div[@class='UFICommentContentBlock']//span[@class='UFICommentBody']//span[text()='My comment text']") 

Мне нужно добраться до Редактировать комментарий кнопку этого комментария, который также является дочерним UFICommentContentBlock, но не является прямым родственником элемента, содержащего текст комментария так

xpath("//div[@class='UFICommentContentBlock']//span[@class='UFICommentBody']//span[text()='.']/following-sibling::div[@class='fsm fwn fcg UFICommentActions']/a[@class='UFICommentCloseButton _5upq _5upr _5upp _42ft']") 

не работает.
Нужна ваша помощь, чтобы выбрать его

ответ

1

Используйте это: -

//span[text()='My comment text']/ancestor::div[@class='UFICommentContentBlock']//a[contains(@class,'UFICommentCloseButton')] 

ИЛИ

//span[text()=.]/ancestor::div[@class='UFICommentContentBlock']//a[contains(@class,'UFICommentCloseButton')] 

ID также упоминается a тег. Таким образом, вы можете использовать идентификатор, а также: -

//span[text()=.]/ancestor::div[@class='UFICommentContentBlock']//a[@id='js_c'] 

ИЛИ

//a[@id='js_c'] 
+0

ДА !!! Это работает !!! Спасибо !!!!!! – Eliyahu

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