python - Google chrome 与 selenium 一起启动后立即关闭

标签 python google-chrome selenium selenium-chromedriver

我在 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/

相关文章:

python - 如何生成排列列表列表

python - 找不到任何满足要求的下载 pypm==1.3.4

python - 在可能会失败的构造函数中运行代码的错误做法?

分析日志文件的Python脚本

html - 标题中的标签栏右对齐。支持所有浏览器问题

CSS:-webkit-mask-image

javascript - 混合客户端/服务器端测试

selenium - pytest.fixture 函数不能使用 `` Yield``。相反,编写并返回一个内部函数/生成器,并让消费者调用并迭代它。 :

html - 滚动条MB问题

ruby-on-rails - 使用 Capybara,如何切换到新窗口以获取包含 "_blank"目标的链接?