В моем тестовом примере 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();
Спасибо за вашу помощь.
Я не уверен, почему вы получаете ошибку, я думаю, что проблема с вашей разметкой / 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);
}
}
Когда ссылка нажата, кнопка меняет стиль, проверьте играть на скрипке.
Других решений пока нет …