Селен: Как нажать на кнопку HTML-элемент? - PullRequest
6 голосов
/ 13 мая 2010

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

Я использую расширение Selenium для PHPUnit и хочу проверить, правильно ли кнопка перенаправляет пользователя. Вот HTML-код, который я пытаюсь проверить:

<button onclick="window.location='/sponsor';" value="Continue" type="button" id="sponsorContinue" name="sponsorContinue">Continue</button>

Я пробовал много разных подходов, чтобы нажать кнопку, но я не могу заставить их работать:

$this->click("//button[@id='sponsorContinue']");

Эта команда выполняется и не выдает никаких ошибок, но страница не перенаправляется. Работает нормально, когда я вручную нажимаю кнопку. Что мне делать?

1 Ответ

2 голосов
/ 13 мая 2010

Вот проблема ... HTML-код неправильный, и он заставляет пользователей использовать javascript для перехода на следующую страницу. Используйте этот HTML вместо. Это чище и не зависит от JavaScript.

<form method="get" action="/sponsor">
    <button type="submit" id="sponsorContinue">Continue</button>
</form>

Также теперь это будет работать:

$this->click('sponsorContinue');

Однако, если вы пытаетесь заставить window.location работать, см. Этот вопрос .

...