Python Selenium driver.quit() 如果设置firefox_profile,则无法退出 Fire



这个问题真的让我很困惑。 我正在使用python硒做一些自动工作。工作完成后,我需要关闭浏览器(我必须使用火狐(。我知道driver.close()关闭当前窗口,driver.quit()将关闭所有窗口并退出浏览器。问题是:如果我使用 pythonfile.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

我正在使用的版本:

  • 蟒蛇 3.5.3
  • 硒 3.4.3
  • 火狐 55.0.1
  • 壁虎驱动程序 0.18.0

当我们使用具有最新GeckoDriver v.0.18.0Mozilla Firefox 53.0Selenium 3.5.0时,一旦您在WebDriver实例上调用quit(),由WebDriver实例启动的浏览器窗口必然会被销毁(杀死(。

因此,您看到的空白窗口可能是其他用户交互或悬空实例的结果。

建议:

可以考虑以下步骤来启动干净的测试执行:

  1. 运行CCleaner工具以清除之前执行的所有剩余物。
  2. 重新启动系统以在干净的操作系统环境中启动Test Execution
  3. 保持Test Environment与其他User Interactions隔离。

最新更新