2017-07-30 36 views
1

我使用下面的XPath選擇:結合XPath選擇,選擇後代或自

//*[text()="Surname"]//parent::*//following-sibling::*[self::select or self::input or self::textarea] 
//*[text()="Surname"]//parent::*//following-sibling::*//*[self::select or self::input or self::textarea] 

選擇輸入時,在任一這種結構從標籤中選擇項目或textarea:

<div> 
     <div><label for="">Surname</label></div> 
     <div class="help">Some help text in a tooltip</div> 
     <div class="control"> 
     <div> 
      <input type="text" value="" /> 
     </div> 
     </div> 
    </div> 

或這一個:

<div> 
     <div><label for="">Surname</label></div> 
     <div class="help">Some help text in a tooltip</div> 
     <input type="text" value="" /> 
    </div> 

這工作正常但是,只是關注結束的選擇器,我想知道是否有可能讓這只是一個選擇器?

我試過後代或自身而不是自我上面的第二選擇,但它不工作,選擇第二個DOM結構。

+0

你使用的瀏覽器亞歷克斯? –

+0

我仍然不確定爲什麼你無法'選擇一個輸入',其中''顯然有'id =「 TEST2" '。我錯過了什麼嗎?謝謝 – DebanjanB

+0

是的,對不起,我的例子很糟糕。我現在將刪除所有的鉤子。 – alexrogins

回答

1

你可以去兩個層面去尋找任何後代

//*[text()="Surname"]//..//..//*[self::select or self::input or self::textarea] 
0

遵循以下步驟:

  1. 嘗試在瀏覽器中打開你的HTML /頁。
  2. 按F12或右鍵單擊並在 瀏覽器上按「檢查元素」。
  3. 嘗試搜索你需要想<input> 元素的元素。該元素的
  4. 單擊鼠標右鍵,選擇「複製」,然後選擇 「複製選擇」。
  5. 要驗證是否選擇是給你在你的情況<input>元素正確 元素。您的瀏覽器 的打開控制檯,然後輸入$("")
    現在,只需粘貼你的報價和 按回車之間複製的元素。您應該看到<input>元素的html。
  6. 在硒的代碼使用 ByCSSSelector並粘貼您複製並在步驟5

運行在 報價粘貼程序成功的東西成功驗證後。

+0

謝謝@ Ashraf.Shk786我得到如何驗證它。這是關於捕捉我在1選擇器之後的更多內容。 – alexrogins

+0

歡迎您:-) –

0

我不知道爲什麼這是不工作的,但第一個選擇器實際上涵蓋了這兩種情況。我只是意識到parent::*可以..

//*[text()="Surname"]//..//following-sibling::*[self::select or self::input or self::textarea] 
1

以下XPath標識包含所述label元件用「姓」值的div元件,然後使用following-sibling::軸線以匹配任何元素在同一水平匹配div(它可以是第二個示例或div中的表單元素,它們包含第一個示例中的表單元素),然後使用帶謂詞的軸來匹配任何所需的表單元素。

//div[label = 'Surname'] 
    /following-sibling::* 
    /descendant-or-self::*[self::select or self::input or self::textarea] 
+0

出於興趣,爲什麼單斜槓而不是雙倍。從根本上的單一手段,不是嗎? – alexrogins

+0

以單斜槓開頭的XPath將「跳轉」到根節點。然而,從XPath中間,雙斜槓是'descendant ::'軸的縮寫,並且將從上下文節點的任何級別查找匹配。在我提供的XPath中,以下兄弟可能是我們想要匹配的項目。我想匹配後代或上下文節點,所以需要一個斜線,然後使用'後代或自我::'軸。 http://homepage.cs.latrobe.edu.au/mjsutherland/WS/current/notes/lecture070_XSL_010/xpathAxis.png –