2013-07-18 11 views
5

In molti esempi, ho visto le chiamate effettuate su entrambi i webdriver-> setBrowserURL (url) e webdriver-> url (url). Perché dovrei usare uno invece dell'altro. Un esempio mostra utilizzando sia nello stesso modo (presa dal phpunit manual):Qual è la differenza in setBrowserUrl() e url() nel driver Web di Selenium 2 per phpunit?

<?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()); 
    } 

} 
?> 

Perché sarebbe setBrowserUrl() essere chiamata una volta nel setup - e poi URL() viene chiamato con l'URL identico nella prova caso stesso?

In altri esempi, ho visto url() chiamato con solo un percorso per l'url. Qual è l'uso corretto qui? Non riesco a trovare quasi nessuna documentazione sull'uso di url().

risposta

5

setBrowserUrl() imposta un URL di base, consentendo di utilizzare percorsi relativi nei test.

L'esempio dal manuale phpunit è una specie di confusione - credo setBrowserUrl() viene utilizzato durante l'installazione semplicemente perché getterà un errore senza di essa:

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

$ this-> URL userà questa base se viene fornito un percorso relativo.

+0

Grazie. Solo così sono chiaro, se uso url di base + percorso assoluto con url(), sostituirà l'URL di base e il percorso impostato in setBrowserUrl()? – Clandestine

+0

Se si utilizza url() con un percorso assoluto, ignorerà il percorso di base. Se si utilizza url() in un secondo momento con un percorso relativo, verrà utilizzato il percorso di base impostato con setBrowserUrl() per determinare l'URL da visitare. –