2013-08-08 27 views
5

Tôi đang sử dụng các chức năng sau:Không thể đánh giá XPath (Behat/Mink)

/** 
    * Click on the element with the provided xpath query 
    * 
    * @When /^I click on the element with xpath "([^"]*)"$/ 
    */ 
    public function iClickOnTheElementWithXPath($xpath) 
    { 
     $session = $this->getSession(); // get the mink session 
     $element = $session->getPage()->find('xpath',$session->getSelectorsHandler()->selectorToXpath('xpath', $xpath)); // runs the actual query and returns the element 

     // errors must not pass silently 
     if (null === $element) { 
      throw new \InvalidArgumentException(sprintf('Could not evaluate XPath: "%s"', $xpath)); 
     } 

     // ok, let's click on it 
     $element->click(); 

    } 

trong FeatureContext.php tôi cố gắng nhấp chuột vào một nút với XPath sau (các Behat Bước là): Khi tôi click vào phần tử với XPath

//html/body/div[4]/div/div/div/div[2]/div[2]/div[4]/div/div/div/div[2]/ol/li/span[4]/a[1] 

Firebug là hài lòng với XPath này, nhưng behat là cho tôi những lỗi:

Could not evaluate XPath: "//html/body/div[4]/div/div/div/div[2]/div[2]/div[4]/div/div/div/div[2]/ol/li/span[4]/a[1]"

Tôi đang làm gì sai?

đây là một ví dụ về Behat trên w3schools, cố gắng bấm vào "Thử đó cho mình" nút ":

   Feature: xpath try on w3schools.com/tags/att_input_src.asp 
      Scenario: click button on xpath 
       @javascript 
      When I go to "/tags/att_input_src.asp" 
       And I click on the element with xpath "/html/body/div/div[3]/div[6]/div/a[1]" 
       And I wait 5 seconds 
      Then I should be on "tags/tryit.asp?filename=tryhtml_input_src" 

cho cùng một lỗi, không thể đánh giá xpath, xpath trên Firebug cho thấy nút đúng ...

+0

Biểu thức XPath của bạn có lẽ không trả lại bất cứ thứ gì. Bạn có thể cho chúng tôi một số đầu vào mẫu để làm việc không? –

+0

cùng một đường dẫn trở lại vị trí chính xác khi được chọn trên firebug –

Trả lời

6

tôi đã cùng một vấn đề. có vẻ như bạn cần phải ommit /html/body. Đối với tôi

//div[2]/div/div[2]/div/table/tbody/tr/td[3] 

hoạt động tốt.

+0

tuyệt vời! Nó hoạt động! Bạn là một ngôi sao! –

Các vấn đề liên quan