2009-09-12 178 views
9

我是Selenium的新手。我生成了我的第一個java selenium測試用例,並且它已經成功編譯。但當我運行測試時,我得到以下RuntimeExceptionSelenium - 無法啓動Selenium會話:無法啓動新的瀏覽器會話:啓動瀏覽器時出錯

java.lang.RuntimeException: Could not start Selenium session: Failed to start new browser session: Error while launching browser at com.thoughtworks.selenium.DefaultSelenium.start <DefaultSelenium.java:88> 

請告訴我如何解決此錯誤。

這是我想運行的java文件。

import com.thoughtworks.selenium.*; 

import java.util.regex.Pattern; 

import junit.framework.*; 

public class orkut extends SeleneseTestCase { 

public void setUp() throws Exception { 

    setUp("https://www.google.com/", "*chrome"); 

} 
public void testOrkut() throws Exception { 

    selenium.setTimeout("10000"); 

    selenium.open("/accounts/ServiceLogin?service=orkut&hl=en-US&rm=false&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin%3Fmsg%3D0&cd=IN&skipvpage=true&sendvemail=false"); 

    selenium.type("Email", "username"); 

    selenium.type("Passwd", "password"); 

    selenium.click("signIn"); 

    selenium.selectFrame("orkutFrame"); 

    selenium.click("link=Communities"); 

    selenium.waitForPageToLoad("10000"); 

} 

public static Test suite() { 

    return new TestSuite(orkut.class); 

} 

public void tearDown(){ 

    selenium.stop(); 

} 

public static void main(String args[]) { 

    junit.textui.TestRunner.run(suite()); 

} 

} 

我首先通過命令提示符啓動了硒服務器,然後通過另一個命令提示符執行上面的java文件。

第二個問題:我可以在硒網頁上的指定位置點擊鼠標右鍵嗎?

+0

嗨!你可以發佈一些代碼,說明你如何試圖啓動瀏覽器(或你使用的配置)?這可能有助於找出問題出在哪裏;另外:Selenium RC的控制檯中是否有任何有用的輸出? – 2009-09-12 11:53:20

+0

我已經添加更多信息給我的問題。 – 2009-09-12 12:19:38

回答

2

我知道ŧ他的聲音可能聽起來很愚蠢,但你確定你的代碼中有selenium.start()嗎?初學者可以犯這個錯誤。

+0

我遇到了完全相同的問題,並添加start()修復了會話問題。 – ngeek 2010-06-29 13:25:49

0

setUp方法基本上調用start方法,所以不需要在上面的代碼中給出selenium.start()。我想這是硒的錯誤。它在獲得一些響應之前停止測試。但我還沒有找到爲什麼。

1

始終確保在測試步驟結束時調用selenium.stop()方法。

5

這個問題可能是由Selenium服務器的一個已經運行的實例引起的。新實例需要偵聽相同的端口號,但不能,因爲端口已被使用。

比方說,你Selenium服務器配置爲啓動在端口4444確定是否端口使用「netstat的」命令使用:

在Windows上:netstat -an | find "4444"

希望看到這樣的輸出:

TCP 0.0.0.0:4444   0.0.0.0:0    LISTENING 
    TCP [::]:4444    [::]:0     LISTENING 

在Linux上,使用方法:netstat -anp | grep 4444

(沒有Linux機器手,所以不能顯示例子outpu t!)

如果你看到任何輸出,你需要終止在Selenium想要使用的端口上偵聽的進程。在Windows上,使用netstat -anb來查找進程名稱(它將在指定端口號的行後面列出)。使用任務管理器殺死它。在Linux上,過程PID和名稱將通過上面的命令列出 - 使用kill -9 <PID>來終止它。

+0

這是一個問題在我的情況.... – bluszcz 2011-05-05 13:37:03

相關問題