2013-07-23 2 views
0

Учитывая, что это мой DOM, и он не принадлежит мне, поэтому я не могу его каким-либо образом изменить, как выбрать правильную ссылку «нажмите здесь» на основе внутреннего текста продукта-идентификатора? Обратите внимание, что в этом коде есть 3 продукта, и ссылка может отображаться в любом месте страницы, поэтому я должен выбирать только на основе идентификатора продукта. Это для функционального теста behit/mink для PHP, и до сих пор все попытки, которые я сделал для выбора на основе идентификатора продукта, не удалось.Как указать этот XPATH?

<div id = "container"> 
    <div class = "product"> 
     <div class="product-detail"> 
      <span class = "product-id">123-456-789</span> 
     </div> 
     <div class = "leftblock"> 
      <div class = "product-info"> 
       <a><span>Click Here</span></a> 
      </div> 
     </div> 
    </div> 

    <div class = "product"> 
     <div class="product-detail"> 
      <span class = "product-id">456-789-012</span> 
     </div> 
     <div class = "leftblock"> 
      <div class = "product-info"> 
       <a><span>Click Here</span></a> 
      </div> 
     </div> 
    </div> 

    <div class = "product"> 
     <div class="product-detail"> 
      <span class = "product-id">345-678-901</span> 
     </div> 
     <div class = "leftblock"> 
      <div class = "product-info"> 
       <a><span>Click Here</span></a> 
      </div> 
     </div> 
    </div> 
</div> 

Это XPath, например, не удалось:

//span[text()='Click Here']/following::span[@class='product-id' and text()='" . $productId . "'] 

Я попытался с помощью предок и другие вещи, но ничего еще. Я даже не уверен, использую ли я правильные символы. Есть идеи?

ответ

0

Попробуйте следующее xpath. Замените идентификатор продукта новым идентификатором продукта. Надеюсь, что это помогает

// DIV [DIV/SPAN [текст() = '123-456-789']]/потомок :: а/оболочка [текст() = 'Нажмите здесь']

0

Я понял. Я могу выбрать класс product-id, а затем использовать/.., чтобы перейти к уровню для родителя, затем используйте /, чтобы вернуться к тому, где находится целевая цель.

+2

предоставляют XPath, поэтому будущие посетители могут увидеть, что вы придумали, пожалуйста – Gordon