2013-07-18 31 views
5

在很多例子中,我看到了對webdriver-> setBrowserURL(url)和webdriver-> url(url)的調用。我爲什麼要使用一個而不是另一個。一個這樣的例子示出了使用兩個以相同的方式(從phpunit manual截取):Selenium 2 web driver for phpunit中的setBrowserUrl()和url()有什麼區別?

<?php 
class WebTest extends PHPUnit_Extensions_Selenium2TestCase 
{ 
    protected function setUp() 
    { 
     $this->setBrowser('firefox'); 
     $this->setBrowserUrl('http://www.example.com/'); 
    } 

    public function testTitle() 
    { 
     $this->url('http://www.example.com/'); 
     $this->assertEquals('Example WWW Page', $this->title()); 
    } 

} 
?> 

爲什麼setBrowserUrl()被調用一次在設置 - 然後URL()與在測試中相同的URL稱爲案件本身?

在其他例子中,我已經看到url()只調用了url的路徑。這裏的正確用法是什麼?我幾乎找不到有關使用url()的文檔。

回答

5

setBrowserUrl()設置一個基礎URL,允許您在測試中使用相對路徑。

從PHPUnit的說明書的例子是怎麼樣的困惑 - 我相信,在安裝過程中使用setBrowserUrl()僅僅是因爲它會拋出一個錯誤,沒有它:

public function start() 
{ 
    if ($this->browserUrl == NULL) { 
     throw new PHPUnit_Framework_Exception(
      'setBrowserUrl() needs to be called before start().' 
     ); 
    } 

$這個 - > URL將使用這個基礎,如果給出了一個相對路徑。

+0

謝謝。就這樣我清楚,如果我使用base url + url()的絕對路徑,它會覆蓋setBrowserUrl()中設置的基本url和路徑。 – Clandestine

+0

如果使用帶絕對路徑的url(),它將忽略基本路徑。如果您稍後使用相對路徑使用url(),它將使用您使用setBrowserUrl()設置的基本路徑來確定要訪問的URL。 –

相關問題