2017-01-13 70 views
1

我在使用TestNG在我的maven項目中運行多個測試用例時出現此錯誤。已經嘗試了多種解決方案,但沒有爲我工作。
調用quit()後,FirefoxDriver無法使用。退出()被調用後,FirefoxDriver無法使用

我的步驟如下: -

@ Test1的 所以,當我跑我的測試情況下,第一種情況下將完美運行涉及
打開瀏覽器
輸入不正確的登錄信息
關閉瀏覽器。

@ Test2的 我的第二個病例是
打開瀏覽器
在登錄到應用
驗證URL
關閉瀏覽器。

但在這種情況下,它不會調用我的瀏覽器,並給了我下面的錯誤

通過:loginfail失敗:loginpass
org.openqa.selenium.remote.SessionNotFoundException:該FirefoxDriver 不能使用()被調用後。 Build info:'2.53.1', revision:'a36b8b1cd5757287168e54b817830adce9b0158d',時間: '2016-06-30 19:26:09'系統信息:host:'EIS011',ip:'192.168.0.18', os.name: 'Windows 8.1中',os.arch: 'AMD64',os.version: '6.3', java.version: '1.8.0_111' 驅動程序信息:driver.version:RemoteWebDriver

這裏是我的代碼供你參考 -

所以這是我的Testcases類。 enter image description here

2)這是我從哪裏調用我的方法我正在使用頁面對象模型的類。

enter image description here

如果你們不理解我的問題,請讓我知道。請幫忙,因爲我在這裏呆了好幾天了。

回答

0

如果您要運行更多測試,則不應撥打WebDriver.quit();如果你想關閉瀏覽器,你應該調用WebDriver.close(),關閉瀏覽器但不終止驅動程序。

僅在最後一次測試後才致電quit()。如果您在每次測試後都打電話給quit(),爲了運行下一個測試,您需要創建一個新的驅動程序實例,我認爲這樣做沒有多大意義。

+0

嗨SantiBailors,非常感謝回覆,但我試圖做到這一點,當我使用webDriver.close()然後它顯示我這個錯誤。 org.openqa.selenium.remote.UnreachableBrowserException:與遠程瀏覽器通信時出錯。它可能已經死亡。 –

+0

@piyushjolly我看不到在你的代碼中調用'close()',無論如何,它聽起來像你調用'quit()'後調用'close()',這是錯誤的。只要按照我在回答中提到的電話順序排列,並在此處發佈可能會出現的錯誤。 PS方法和變量的名稱應該以小寫字母開頭,這是一個基本上每個人都遵循的完善的慣例。 PPS當發佈代碼不使用屏幕截圖時,只需在每行前加4個空格即可將文本格式化爲代碼,如果選擇文本並單擊「代碼」按鈕,也會發生這種情況。 – SantiBailors

0

的問題時,因爲所有的@Test註解測試方法似乎可以用相同的driver實例,並在你的一種測試方法,你在呼喚quit()方法。所以下面的測試方法試圖訪問一個處於無效狀態的web驅動程序來解釋異常。

有幾種方法可以解決此問題。

  1. 訴諸使用一個ThreadLocal變種作爲你的webdriver的實例跟蹤,並通過無論是beforeInvocation()(TestNG的聽衆)推入一個有效webdriver的情況下進入,或通過@BeforeMethod並通過afterInvocation()或通過清理ThreadLocal實例一種@AfterMethod方法。
  2. 您將webdriver實例化和清理移動到您的@Test方法中。
相關問題