这个问题让我很困惑。
我正在使用python selenium做一些自动工作。完成工作后,我需要关闭浏览器(我必须使用firefox)。我知道driver.close()
将关闭当前窗口,driver.quit()
将关闭所有窗口并退出浏览器。问题是:如果我使用 python file.py 来运行我的代码,它对我不起作用,但是如果我在 python console 中设置驱动程序,那么这里有效不工作就是说它只是关闭我的网址,但firefox浏览器没有退出。以上所有测试都设置了firefox_profile。
更多,我发现如果我没有设置firefox_profile运行我的代码的第一种方式也工作。我想也许这是firefox_profile的一个bug。希望有人能救我的一天。
我的代码就像:
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
我使用的版本:
答案 0 :(得分:0)
虽然我们使用最新Selenium 3.5.0
和GeckoDriver v.0.18.0
的{{1}},但Mozilla Firefox 53.0
实例发起的浏览器窗口必然会被销毁(一旦调用WebDriver
实例上的quit()
,就会杀死。
因此,您看到的空白窗口可能是某些其他用户交互或悬空实例的结果。
您可以考虑以下步骤来启动干净的测试执行:
WebDriver
工具,清除之前执行中的所有残羹剩饭。CCleaner
。Test Execution
与其他Test Environment
隔离开来。