2014-01-18 21 views
0

我有一個HTML表單,有這個標記。如何用phpunit和selenium2聲明表單動作屬性url?

<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')); 

好像動作總是空。

有誰知道如何測試表單動作屬性?

謝謝。

回答

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代碼。