2013-07-18 95 views
5

Trong nhiều ví dụ, tôi đã thấy các cuộc gọi được thực hiện cho cả webdriver-> setBrowserURL (url) và webdriver-> url (url). Tại sao tôi lại muốn sử dụng cái này thay vì cái kia. Một trong những ví dụ cho thấy sử dụng cả hai trong cùng một cách thức (lấy từ phpunit manual):Sự khác biệt trong setBrowserUrl() và url() trong trình điều khiển web Selenium 2 cho phpunit là gì?

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

} 
?> 

Tại sao setBrowserUrl() được gọi là một lần trong cài đặt - và sau đó url() được gọi với url giống hệt nhau trong các thử nghiệm trường hợp chính nó?

Trong các ví dụ khác, tôi đã thấy url() được gọi chỉ với một đường dẫn cho url. Cách sử dụng thích hợp ở đây là gì? Tôi có thể tìm thấy hầu như không có tài liệu về việc sử dụng url().

Trả lời

5

setBrowserUrl() đặt url cơ sở, cho phép bạn sử dụng đường dẫn tương đối trong các thử nghiệm của mình.

Các ví dụ từ cuốn hướng dẫn phpunit là loại khó hiểu - Tôi tin setBrowserUrl() đang được sử dụng trong quá trình cài đặt đơn giản chỉ vì nó sẽ ném ra một lỗi mà không có nó:

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

$ this-> url sẽ sử dụng cơ sở này nếu một đường dẫn tương đối được đưa ra.

+0

Cảm ơn. Chỉ cần vì vậy tôi rõ ràng, nếu tôi sử dụng url cơ sở + đường dẫn tuyệt đối với url(), nó sẽ ghi đè lên url cơ sở và đường dẫn thiết lập trong setBrowserUrl()? – Clandestine

+0

Nếu bạn sử dụng url() với đường dẫn tuyệt đối, nó sẽ bỏ qua đường dẫn cơ bản. Nếu bạn sử dụng url() sau đó với một đường dẫn tương đối, nó sẽ sử dụng đường dẫn cơ sở bạn thiết lập với setBrowserUrl() để xác định url để truy cập. –