1

这个问题真的让我很困惑。我正在使用 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

我正在使用的版本:

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

1 回答 1

0

当我们Selenium 3.5.0使用 latestGeckoDriver v.0.18.0和时,一旦您在实例上调用 ,Mozilla Firefox 53.0由实例启动的浏览器窗口WebDriver必然会被破坏(杀死)quit()WebDriver

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

推荐:

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

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