2017-02-14 10 views
0

は、だから私は、私はボタンNameFielddiv entire classに存在している場合にのみ、ボタン新規アカウントを見つけたいWebページを持って存在している場合にのみ、親に子を見つけます。XPathは別の子が

<div class="entire class"> 
    <div class = "upper class> 
     <button class="NameField"></button> 
    </div> 
    <div class="lower class"> 
     <button class="SignUp"></button> 
    </div> 
</div> 

どうすれば達成できますか?私は以下を試しました:

$x("//div[@class='entire class']//button[@class='NameField'] and not(descendant::button[@class='SignUp']") 

$x("//*[@class='upper class'] | [@class='SignUp']") 

$x("//*[@class='SignUp'] | //body)[last()]") 

$x("//div[//button[@class='SignUp'] and [//button[@class='NameField']]") 

どれも動作していないようです。

答えて

1

以下XPath試してみてください。

//div[button[@class="NameField"]]/following-sibling::div/button[@class="SignUp"] 

//div[@class="entire class" and div[button[@class="NameField"]]]/div/button[@class="SignUp"] 

または単純化されたものを:

//button[@class="NameField"]/following::button 
+0

だから最初のオプションは何も返しません。 2番目のオプションは、NameFieldボタンがないdiv内のすべてのSignUpボタンを返します。 – President

+0

複数の 'NameField' /' SignUp'ボタンがあることを意味しますか?はい、この場合、2番目のオプションは受け入れられません。しかし、まずは働かなければならない(私のために働く)。提供された 'HTML'サンプルが本当の' HTML'とまったく同じように見えるかどうか確認してください - このサンプルを準備する際に重要なノードを削除するかもしれません。 – Andersson

+1

@President、これも試してください '// div [@ class =" class "ボタン[@ class = "NameField"]]]/div/button [@ class = "SignUp"] ' – Andersson

関連する問題