php - Selenium:如何单击 HTML 按钮元素?

标签 php selenium phpunit selenium-rc

我在页面上有一个按钮,用作到另一个页面的链接。因此,当用户单击该按钮时,他们将被重定向到正确的页面。

我正在为 PHPUnit 使用 Selenium 扩展,我想测试该按钮是否正确地重定向了用户。这是我要测试的 HTML:

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

我已经尝试了很多不同的方法来点击按钮,但我似乎无法让任何一种方法起作用:

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

此命令执行后不会抛出任何错误,但不会重定向页面。当我手动单击按钮时它工作正常。我该怎么办?

最佳答案

这就是问题所在……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 .

关于php - Selenium:如何单击 HTML 按钮元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2822580/

相关文章:

php - WordPress 新插件问题

ruby - 如何使用 Capybara 和 Ruby 切换 Frame?

python - 进入新页面时, Selenium 会丢失 session

php - 运行PHPUnit测试时如何避免内部调用函数?以及如何为内部性能设置模拟数据?

php - 单元测试和静态方法

php - 在 PHP 中轻松解析持续时间

PHP OpCache 优化

php - 调用未定义的方法 Illuminate\Routing\RouteFileRegistrar::get() - 从 Laravel 5.7 升级到 5.8 后出错

Python Selenium : How to get cookies and format them to use in an http request

phpunit - 如何从phpunit覆盖率报告中排除目录