2015-06-28 46 views
8

我正在使用JUnit註釋在Eclipse中編寫一個簡單的程序。driver.close()方法不適用於Firefox的Selenium WebDriver

diver.close()在測試後沒有關閉我的Firefox瀏覽器。它適用於Chrome。代碼片段就在這裏。

public class FireFox1 { 
    WebDriver driver; 

    @Before 
    public void setUp() { 
     driver= new FirefoxDriver(); 
     driver.get("http://book.theautomatedtester.co.uk/chapter4"); 
    } 

    @After 
    public void tearDown() { 
     driver.close(); 
    } 

    @Test 
    public void testExamples() { 
     WebElement element= driver.findElement(By.id("nextBid")); 
     element.sendKeys("100");  

    } 
} 
+1

使用'driver.close()'而不是'driver.quit()'的意圖是什麼? – Saifur

+0

與Firefox和Junit相同的代碼運行沒有任何問題,並關閉瀏覽器。 –

+0

嘿Saifur,它在這裏使用driver.quit()可以正常工作,但我想知道爲什麼它不使用close()方法。 –

回答

2

有時在重複使用時,我們會遇到問題driver.close()。 反正driver.quit()會糾正你的問題。

一般driver.close()關閉瀏覽器(驅動程序的實例仍然完好),driver.quit()是殺死webdriver實例。無論如何,你只用了一頁,那麼你可以用driver.quit()去。

謝謝。

1

假設你已經開始5個瀏覽器(類)平行使用格:

driver.close - 用於關閉當前的瀏覽器(其中上執行去)

driver.quit - 用於近距所有瀏覽器都由當前執行開始。

您可以使用這個任何一個..

可能是瀏覽器的兼容性問題,請嘗試降級FF讓我們看到......

0

更好地利用driver.quit()方法。它關閉瀏覽器,但由於一些未知的問題,它會拋出NullPointerException。只要抓住它..

try{ 
    driver.quit(); 
    }catch (Exception e){ 
     System.out.println("Nothing to do with it"); 
     } 
0

使用最新GeckoDriver.exe(17)與最新的Firefox(54.0); 它適用於我。我以前有同樣的問題。

您面對的這個問題完全是驅動程序&瀏覽器版本之間的兼容性問題。

driver.close();如果您使用以上版本,應該可以毫無問題地工作。讓我知道它是否有效。

相關問題