PHPUnit + Selenium: ‘display ()’ не работает на элементе popover

В моем тестовом примере PHPUnit_Extensions_Selenium2TestCase я пытаюсь открыть элемент popover начальной загрузки (http://getbootstrap.com/javascript/#popovers), а затем нажмите на ссылку внутри.

Мне удается открыть его, но потом я не могу щелкнуть ссылку, потому что PHPUnit считает, что она все еще скрыта. Я использую функцию waitUntil, но время ожидания истекло, хотя элемент на самом деле виден (я вижу, что всплывающее окно открывается, когда я запускаю тестовый пример).

Мой код:

// open popover
$this->byXPath("//something")->click();

// wait
$this->waitUntil(function() {
return $this->byId("myId")->displayed() ? true : null;
}, 2000);

// click on link (never reached, the previous function timeouts)
$this->byId("myId")->click();

Спасибо за вашу помощь.

0

Решение

Я не уверен, почему вы получаете ошибку, я думаю, что проблема с вашей разметкой / JS. Только что проверил следующее с последними библиотеками, работает нормально (навигация по URL не работает из всплывающего окна по некоторым причинам):

class Test extends PHPUnit_Extensions_Selenium2TestCase
{

protected function setUp()
{
$this->setBrowser('chrome');
$this->setBrowserUrl('');
}

public function test()
{
$this->url('http://jsfiddle.net/ianbytchek/0adyuhkg/embedded/result/');
$this->frame($this->byXPath('//*[@id="result"]/iframe'));

// open popover
$this->byXPath("//button")->click();

// wait
$this->waitUntil(function () {
return $this->byId("myId")->displayed();
}, 2000);

// click on link (never reached, the previous function timeouts)
$this->byId("myId")->click();

sleep(10);
}
}

Когда ссылка нажата, кнопка меняет стиль, проверьте играть на скрипке.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]