2013-06-14 2 views
1

Я работаю над проектом Symfony, и я хочу создать модульный тест с Behat/Mink.Behat: Ошибка при использовании switchToIFrame()

У меня есть сценарий:

Feature: Homepage 
Scenario: Check if I can log on 
    Given I am on "/" 
    And I follow "connexion_js" 
    And I switch to the iframe "cboxIframe" 

Я определил последнюю строку в моем классе FeatureContext.

class FeatureContext extends MinkContext implements KernelAwareInterface{ 

    // ... 

    /** 
    * @Given /^I switch to the iframe "([^"]*)"$/ 
    */ 
    public function iSwitchToIframe($arg1 = null) 
    { 
     $this->getSession()->switchToIFrame($arg1); 
    } 
} 

Когда я исполняю свою команду оболочки:

$: bin/behat "@PoleMainBundle" 
Feature: Homepage 
Scenario: Check if I can log on   # src/xxx/xxx/MainBundle/Features/homepage.feature:2 
Given I am on "/"      # xxx\xxx\MainBundle\Features\Context\FeatureContext::visit() 
And I follow "connexion_js"   # xxx\xxx\MainBundle\Features\Context\FeatureContext::clickLink() 
And I switch to the iframe "cboxIframe"  # xxx\xxx\MainBundle\Features\Context\FeatureContext::iSwithToIframe() 
    iFrame management is not supported by Behat\Symfony2Extension\Driver\KernelDriver 
... 

ответ

1

После многих попробовать, я найти ответ. Для любых функций behat, методы могут поместить любые типы аргументов (id, class, name, ...).

Для метода switchToIFrame() метод ставит только имя элемента !!!

В дополнение, я не смог использовать метод только с Behat/Mink.

Я использую сервер Selenium2 и добавил '@javascript' в свой файл .feature.

Feature: Homepage 
    @javascript 
    Scenario: Check if I can log on 
    Given I am on "/" 
    ... 

Это работает!

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