2017-04-03 6 views
1

子スパンで特定のクラスの検索でのXPathの親を取得:私は、HTMLのようにここにある

<div class="select-menu-item js-navigation-item">...</div> 
<div class="select-menu-item js-navigation-item">...</div> 
<div class="select-menu-item js-navigation-item"> 
    <svg ...></svg> 

    <div class="select-menu-item-gravatar"></div> 
    <div class="select-menu-item-text lh-condensed"> 
     <span class="select-menu-item-heading"> 
      the_username813 
      <span class="description">Last name, First name</span> 
     </span> 
    </div> 
</div> 

私はthe_username813と子スパンを含ん<div class="select-menu-item js-navigation-item">を取得する必要があります。

私はのように、失敗したいくつかのことを試してみました:どのように私は、XPathを使用して、この親div要素を取得することができます

ipdb> element = self.driver.find_element_by_xpath("//span[contains(., 'the_username813')]/parent::div[contains(c 
oncat(' ', @class, ' '), ' js-navigation-item ')]") 
*** NoSuchElementException: Message: Unable to locate element: //span[contains(., 'the_username813')]/parent::div[contains(concat(' ', @class, ' '), ' js-navigation-item ')] 

答えて

1

てみXpath表現の下にありがとう、私は結果を知っている:

//div[@class="select-menu-item js-navigation-item" and .//span[normalize-space(text())="the_username813"]] 

<div class="select-menu-item js-navigation-item">が直接parentではないことに注意してください、しかしancestor要素ので、あなたも

//span[normalize-space(text())="the_username813"]/ancestor::div[@class="select-menu-item js-navigation-item"] 
+0

うんを使用する場合があります最初のものが私の目標だった。私はあなたが使用できることを知りませんでした、ありがとう – codyc4321

関連する問題