Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Selenium: How to click an HTML button element?

I have button on the page that being used as a link to another page. So when the user clicks the button they are redirected to the right page.

I am using the Selenium extension for PHPUnit and I would like to test that the button is correctly redirecting the user. Here is the HTML that I am trying to test:

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

I have tried a lot of different approaches to click the button, but I can't seem to get any of them to work:

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

This command executes and does not throw any errors, but the page isn't redirected. It works fine when I manually click the button. What should I do?

like image 979
Andrew Avatar asked May 12 '10 20:05

Andrew


1 Answers

Here's the problem...the HTML is wrong, and it's forcing users to use javascript to continue to the next page. Use this HTML instead. It's cleaner and doesn't rely on javascript.

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

Also, this will now work:

$this->click('sponsorContinue');

However, if you're trying to get window.location to work, see this question.

like image 195
Andrew Avatar answered Sep 24 '22 19:09

Andrew