2017-02-14 26 views
0

所以我有一個網頁,我想找到按鈕註冊只有當按鈕名稱字段出現在div entire classXpath的發現對父子只有當別的孩子存在

<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

所以第一個選項不返回任何東西。第二個選項即使在NameField按鈕不存在的div中也會返回所有註冊按鈕。 – President

+0

你的意思是有多對'NameField' /'SignUp'按鈕?是的,在這種情況下,第二種選擇是不可接受的。但首先應該工作(爲我工作)。檢查提供的'HTML'樣本是否與真實的'HTML'完全相同 - 您可以在準備此示例時刪除一些重要節點 – Andersson

+1

@President,也可以試試這個'// div [@ class =「entire class」and div [按鈕[@類= 「名稱字段」]]]/DIV /按鈕[@類= 「註冊」]' – Andersson

相關問題