2017-09-29 45 views
0

我想使用Firefox使用Selenium打開Google。我使用的Firefox版本是52.3.0 (64-bit)。我正在嘗試這種方式;錯誤:1506741262570 Marionette信息使用Selenium在端口2828上收聽

System.setProperty("webdriver.gecko.driver","C://geckodriver-v0.19.0-win64_2//geckodriver.exe"); // Setting GECKODRIVER 
WebDriver WD = new FirefoxDriver(); 
WD.get("http://www.google.com"); 

但是在運行程序時,它進入睡眠狀態,輸出結果爲;

1506741259735 geckodriver INFO geckodriver 0.19.0 
1506741259744 geckodriver INFO Listening on 127.0.0.1:31605 
1506741260475 mozrunner::runner INFO Running command: "C:\\Program Files\\Mozilla Firefox\\firefox.exe" "-marionette" "-profile" "C:\\Users\\SPERID~1\\AppData\\Local\\Temp\\rust_mozprofile.viiF05x2u2Ct" 
1506741262570 Marionette INFO Listening on port 2828 

這裏有什麼問題?我無法理解,爲什麼它的工作原理是?

+0

有沒有錯誤?瀏覽器是否打開並瀏覽網址? –

+0

@TarunLalwani。是瀏覽器正在打開,但網址未瀏覽。 – Amar

回答

0

嘗試木偶能力設置爲true,

FirefoxOptions options = new FirefoxOptions(); 
options.setCapability("marionette", true); 
WebDriver WD = new FirefoxDriver(options); 
+1

由於日誌已經顯示'Marionette',爲什麼這需要? –

0

假設你使用的是最新Selenium-Java客戶v 3.6.0geckodriver v 0.19.0,而提的geckodriver.exe你需要使用絕對路徑無論是單一正斜槓(/)還是逃脫反斜槓(\\)如下:

System.setProperty("webdriver.gecko.driver", "C:/Utility/BrowserDrivers/geckodriver.exe"); 
    WebDriver driver = new FirefoxDriver(); 
    driver.get("https://stackoverflow.com"); 
    System.out.println("Application opened"); 
    System.out.println("Page Title is : "+driver.getTitle()); 
    driver.quit(); 
0

我相信問題是Firefox版本。

我下載了用於Selenium IDE的Firefox ESR(52.3.0),但是當我使用WebDriver時,它也自動使用Firefox的ESR版本,並且按照您描述的方式失敗。

當我卸載Firefox ESR版本時,WebDriver自動使用Firefox 55.0.3並且工作正常。

編輯:我決定我還是需要ESR,所以我重新安裝了它並將默認安裝路徑從「C:\ Program Files \ Mozilla Firefox」更改爲「C:\ Program Files \ Mozilla Firefox ESR」,因此Selenium WebDriver無法輕鬆找到它並使用較新版本的Firefox。

+0

我發現的另一個技巧是您可以在您的環境變量中設置geckodriver和其他瀏覽器驅動程序的位置。這意味着你不需要這行:「System.setProperty ...」 相反,將C:/geckodriver-v0.19.0-win64_2/添加到你的Path變量中,並存儲所有瀏覽器驅動程序,例如Firefox, Chrome瀏覽器,Safari瀏覽器。 – ICU812

0

我決定,我仍然希望ESR,

爲了避免在首位這種「使用Firefox的錯誤」的問題,你可以使用Firefox 54 Portable代替ESR。

爲了確保安全,請安裝Firefox 54便攜式設備,僅用於使用Selenium IDE進行自動測試。您應該將Firefox的可移植版本安裝在與主Firefox不同的目錄中。這樣您就可以爲常規的Firefox保持自動更新。這可以確保您在瀏覽網頁時安全無虞。

1

使用此選項可以定義要使用的Firefox版本。
我遇到的大多數問題都是Selenium,都是圍繞版本問題展開的,沒有明確的消息或關於哪些版本兼容的信息。

System.setProperty("webdriver.firefox.bin", "/path/to/another/firefox/dot/exe");