2011-05-31 65 views
1
$pip install selenium 
$sudo apt-get install firefox xvfb 


from selenium import webdriver 
from selenium.common.exceptions import NoSuchElementException 
from selenium.webdriver.common.keys import Keys 

browser = webdriver.Firefox() 
browser.get("http://www.yahoo.com") 

這就是我到目前爲止對於硒。它似乎工作,除了它說,「Error: no display specified對於Selenium,我需要啓動java服務器嗎?

我的問題是:我需要運行硒罐?這似乎並不重要我是否運行或不...

回答

0

首先讓我爲您定義客戶端模式和服務器模式:

  • 客戶端模式:這種語言 綁定連接到遠程 實例。這是 FirefoxDriver和RemoteWebDriver 客戶端正常工作的方式。
  • 服務器模式: 其中語言綁定爲 負責設置 服務器,該服務器運行於瀏覽器可連接的 。 ChromeDriver這樣

工作在當前的樹幹所有的瀏覽器的 可以在客戶端模式運行,儘管你必須指定ChromeDriver.exe路徑。服務器模式可以用來做同樣的事情。您可以將jar設置爲運行以充當特定瀏覽器的服務器。然後您連接到該服務器。如果你這樣做,你會看到一個Jetty服務器被設置並處理請求。如果這沒有發生,那麼你沒有使用服務器模式。從我的代碼中可以看到,您正在使用客戶端模式,因此不需要運行該jar,除非需要額外的遠程功能。

如果你想在遠程機器上運行測試,在這種情況下你運行jar然後從你的本地機器連接到它,運行jar很有用。然後,jar將處理在運行它的機器上啓動瀏覽器並將操作轉發給它。

我相信在過去的Selenium RC API中,有必要始終運行jar,但是使用WebDriver並非如此。

+0

好的,謝謝。你知道我在當前的代碼中如何使用Xvfb嗎?在Selenium教程中,它說用DISPLAY ....啓動jar,這樣纔有意義。我如何在當前代碼中使用Xvfb? – TIMEX 2011-05-31 23:25:00

+0

對不起,我沒有嘗試硒與Xvfb。即將做到這一點。 – 2011-05-31 23:26:13

0

不,你不需要運行Selenium RC服務器。您也可以使用Webdriver方法,而不是使用功能測試的首選方法,這是對瀏覽器的「直接」控制,據我所知。

我認爲服務器方法「Selenium RC server」對負載測試或多用戶測試更有用,特別是在與Selenium Grid一起使用的情況下。

相關問題