我在 Mac OS X 上使用 selenium 和 python 3.6.3。
此代码运行良好,打开 google chrome 并且 chrome 保持打开状态。:
chrome_options = Options()
chrome_options.binary_location="../Google Chrome"
chrome_options.add_argument("disable-infobars");
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("http://www.google.com/")
但是由于代码包裹在函数中,浏览器在打开页面后立即终止:
def launchBrowser():
chrome_options = Options()
chrome_options.binary_location="../Google Chrome"
chrome_options.add_argument("disable-infobars");
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("http://www.google.com/")
launchBrowser()
我想在保持浏览器打开的同时在函数中使用相同的代码。
最佳答案
我的猜测是驱动程序会被垃圾收集,在 C++ 中,函数(或类)内的对象在脱离上下文时会被销毁。 Python 的工作方式并不完全相同,但它是一种垃圾收集语言。一旦对象不再被引用,它们就会被收集起来。
要解决您的问题,您可以将对象引用作为参数传递,或返回它。
def launchBrowser():
chrome_options = Options()
chrome_options.binary_location="../Google Chrome"
chrome_options.add_argument("start-maximized");
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("http://www.google.com/")
return driver
driver = launchBrowser()
关于python - Google chrome 与 selenium 一起启动后立即关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47508518/