2010-05-12 3 views
6

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

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

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

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

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

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

+0

Этот снипп отлично работает для меня. Какой браузер/ОС вы используете? –

ответ

2

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

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

Кроме того, это теперь будет работать:

$this->click('sponsorContinue'); 

Однако, если вы пытаетесь получить window.location работать, see this question.

+0

+1 для решения без Javascript-кода. Но почему же Selenium не запускает событие onclick? –

+1

Я согласен с изменением кнопки HTML в этом случае. Однако, если вам нужно активировать события в будущем, Selenium позволяет делать это с помощью fireEvent! – Zugwalt

+0

@ Zugwalt Я не могу получить fireEvent для работы в Safari 4 – Andrew

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