簡體   English   中英

如果設置了firefox_profile,則python selenium driver.quit()無法退出firefox瀏覽器

[英]python selenium driver.quit() can not quit firefox browser if firefox_profile setted

這個問題確實讓我很困惑。 我正在使用python selenium做一些自動工作。 完成工作后,我需要關閉瀏覽器(我必須使用Firefox)。 我知道driver.close()將關閉當前窗口,而driver.quit()將關閉所有窗口並退出瀏覽器。 問題是:如果我使用python file.py來運行代碼,則對我不起作用,但是如果我在python控制台中設置了驅動程序,則對我不起作用,這里的工作是說它只是關閉了我的網址,但是firefox瀏覽器無法退出。 以上所有測試均設置了firefox_profile。 更多,我發現如果我沒有將firefox_profile設置為運行我的代碼的第一種方法也可以正常工作。 我認為這可能是firefox_profile的錯誤。 希望有人拯救我的生活。 我的代碼就像:

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)  # custom location
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', download_dir)
profile.set_preference(
    'browser.helperApps.neverAsk.saveToDisk', 'application/octet-stream')
driver = webdriver.Firefox(
    executable_path=gecko_dir, firefox_profile=profile)
driver.get(someurl)
driver.quit()# which will close my session, my url, my current window but not exit browser

我使用的版本:

  • python 3.5.3
  • 硒3.4.3
  • Firefox 55.0.1
  • 壁虎起子0.18.0

當我們使用帶有最新GeckoDriver v.0.18.0Mozilla Firefox 53.0 Selenium 3.5.0 ,一旦在WebDriver上調用quit() ,則由WebDriver實例啟動的瀏覽器窗口必定會被破壞(殺死)。實例。

因此,您看到的空白窗口可能是其他用戶交互或懸空實例的結果。

建議:

您可以考慮以下步驟來啟動干凈的測試執行:

  1. 運行CCleaner工具以清除以前執行中的所有剩余。
  2. 重新啟動系統以在干凈的OS環境上啟動Test Execution
  3. 保持Test Environment與其他User Interactions隔離。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM