【发布时间】:2018-01-24 03:47:41
【问题描述】:
这个问题真的让我很困惑。
我正在使用 python selenium 做一些自动工作。工作完成后,我需要关闭浏览器(我必须使用 firefox)。我知道driver.close() 将关闭当前窗口,driver.quit() 将关闭所有窗口并退出浏览器。问题是:如果我使用 python file.py 来运行我的代码,它对我不起作用,但如果我在 python 控制台 中设置驱动程序,这里就可以了不行就是说它只是关闭了我的url,但是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
- 火狐 55.0.1
- geckodriver 0.18.0
【问题讨论】:
-
just close my url, but the firefox browser not exit到底是什么意思? Firefox 浏览器和 WebDriver 实例是否正常关闭? -
在 driver.quit() 完成后,我的浏览器无法退出,它仍然保持一个窗口打开,这是一个空白窗口 - 一个“新标签”没有其他东西。清楚吗?
-
一旦你调用
driver.quit(),由webdriver实例启动的浏览器窗口必然会被关闭(杀死)。所以blank window可能是其他一些用户交互的结果。您是否在使用最新的 GeckoDriver v.0.18.0 和 Mozilla Firefox 53.0 的 Selenium 3.5.0? -
正如我刚才补充的,我的selenium 3.4.3版本和geckodriver和firefox都是最新版本。没有其他的插曲。问题依然存在
-
您可以关闭所有应用程序并重新启动系统并简单地执行您的脚本吗?
标签: python selenium firefox firefox-profile