如何用phpunit和selenium2声明表单动作属性url?

时间:2014-01-18 21:44:05

标签: php phpunit selenium-webdriver

我有一个带有此标记的html表单。

<form id="login-form" action="/post/login">
    <input name="username" type="text">
    <input name="password" type="password">
</form>

我希望能够断言此表单操作。 我在测试方法中尝试了这个,注意我扩展了\ PHPUnit_Extensions_Selenium2TestCase

$form = $this->byId('login-form');
$this->assertEqual('/post/login', $form->attribute('action'));

似乎行动始终为空。

有谁知道如何测试表单操作属性?

谢谢。

1 个答案:

答案 0 :(得分:0)

不幸的是,$form->attribute('action')会返回基本网址(http://localhost/post/login)的操作。

我没有找到一种没有基地的行动方式,也没有找到如何获得基本网址。有我的解决方案:

function testForm(){
        $this->url('/test.html');

        $form = $this->byId('login-form');
        $this->assertEquals('/post/login', $this->getRelativeFormAction($form));
    }

    function getRelativeFormAction($form){
        $action = $form->attribute('action');
        $action = str_replace($this->getBaseUrl(), '', $action);
        return $action;
    }

    function getBaseUrl(){
        $urlComponents = parse_url($this->url());
        $url = "{$urlComponents['scheme']}://{$urlComponents['host']}";
        return $url;
    }

成功full test代码。