2016-02-10 2 views
0

У меня есть форма с кнопкиНевозможно нажать кнопку отправки. Behat/Mink

<input id="myid" type="submit" value="My button"></input> 

Я пробовал много различных способов, нажмите на него подать, но он не работает. Зачем? Я использую Selenium Driver с браузером PhantomJS. Что я пробовал:

$page = $this->getSession()->getPage(); 
$page->find('xpath', '//*[@id="myid"]')->click(); 
$page->find('xpath', '//*[@id="myid"]')->doubleClick(); 
$page->find('xpath', '//*[@id="myid"]')->press(); 
$page->find('css', '#myid')->click(); 
$page->find('css', '#myid')->doubleClick(); 
$page->find('css', '#myid')->press(); 
$this->getMinkContext()->pressButton('myid'); 
+0

У вас есть ошибки? Шаг был отмечен как неудачный или прошел? Возможно, у вас есть ошибка: «Элемент не кликается в точке», и у вас другая проблема (возможно, элемент имеет перекрытие с другими элементами, а затем вы можете щелкнуть по нему, или элемент не отображается). Пожалуйста, предоставьте дополнительную информацию. – ChechoroArtem

ответ

2

Мы используем функцию следующим образом:

/** 
    * @Then /^(?:|I)click (?:on |)(?:|the)"([^"]*)"(?:|.*)$/ 
    */ 
    public 
    function iClickOn($arg1) 
    { 
     $findName = $this->getSession()->getPage()->find("css", $arg1); 
     if (!$findName) { 
      throw new Exception($arg1 . " could not be found"); 
     } else { 
      $findName->click(); 
     } 
    } 

Использование 1:

Scenario: Test Click 
Given I go to "<url>" 
And I click the "#myId" button - to reveal a hidden element 
Then I should see an "<url2>" element 

Использование 2:

Scenario: Test Click 
Given I go to "<url>" 
And I click the "#myId" link 
Then I should be on "<url2>" 

Если это Безразлично» т работа для вас, то это может быть потому, что есть элемент на пути? Является ли кнопка, на которую вы хотите по-настоящему щелкнуть?

Если это не так, то, возможно, это поможет вам тоже:

/** 
    * @When I scroll :elementId into view 
    */ 
    public function scrollIntoView($elementId) { 
    $function = <<<JS 
     (function(){ 
     var elem = document.getElementById("$elementId"); 
     elem.scrollIntoView(false); 
     })() 
     JS; 
    try { 
     $this->getSession()->executeScript($function); 
    } 
    catch(Exception $e) { 
     throw new \Exception("ScrollIntoView failed"); 
    } 
    } 

Лично я не использовал конечную функцию, однако та же функция помогает человеку в одном из постов я был просмотр перед этим.

Смежные вопросы