2015-08-16 66 views
1

我在Firefox v31中使用硒2.47。有了這個簡單的實現:Selenium 2.47不支持Firefox v31

public void navigateToHomePage() throws Throwable { 
    System.out.println("Navigate to Home"); 
    driver = new FirefoxDriver(); 
    driver.quit(); 
} 

我得到這個錯誤:

org.openqa.selenium.WebDriverException: Unable to bind to locking port 7054 within 45000 ms 
Build info: version: '2.47.0', revision: '0e4837e', time: '2015-07-29 22:49:49' 
System info: host: 'ok-ThinkPad-SL500', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-24-generic', java.version: '1.7.0_79' 
Driver info: driver.version: FirefoxDriver 
    at org.openqa.selenium.internal.SocketLock.lock(SocketLock.java:99) 
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:90) 
    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:276) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:116) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:223) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:216) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:212) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:125) 
    at cucumber.features.StepDefinitions.navigateToHomePage(StepDefinitions.java:24) 
    at ✽.Given I navigate to the home site(/home/ok/workspace/CucumberPOC/src/cucumber/features/UserRegistry.feature:6) 

我不知道它是什麼?

回答

0

這個SocketLock錯誤發生在Firefox嘗試綁定到端口7054時失敗,因爲另一個實例已經鎖定了該端口。

立即解決方案是確保您在啓動新驅動程序之前沒有任何Firefox任務或進程在後臺運行。全部殺死並嘗試再次啓動。

長期來說,您可以通過創建新配置文件,更改端口首選項以避免鎖定,然後使用該配置文件啓動驅動程序來避免這些問題。一個簡單的例子:

FirefoxProfile profile = new FirefoxProfile(); 
profile.setPreference(FirefoxProfile.PORT_PREFERENCE, 7046) 
driver = new FirefoxDriver(profile); 

不幸的是,我一直在尋找了Java術語來說,我發現這個功能是在Java的驅動破一次,然後it was fixed然後it broke in a later update,所以即使你實施解決方案,我給你,你仍然可以在2.47中得到這些錯誤。

The fix was released in version 2.43.1,所以如果你不需要更新版本的其他問題/功能,你可以嘗試回滾到可以成功設置端口首選項的點。

不必讀:Some more technical details of the issue are in this pull request.