【问题标题】:python selenium close program with no traceback message没有回溯消息的python selenium关闭程序
【发布时间】:2014-06-16 19:44:31
【问题描述】:

我有一个 python (2.7.7) 脚本,我自动登录到一个网站,然后在浏览器自动关闭后结束程序。代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import sys

driver = webdriver.Ie()
driver.maximize_window()
driver.get("www.url.com")

# Find username field and input the correct username
inputElement = driver.find_element_by_id("...")
inputElement.send_keys('...')


# Find the password field and input the correct password
inputElement = driver.find_element_by_id("...")
inputElement.send_keys('...')

# Simulate pushing the ENTER key
inputElement.send_keys(Keys.ENTER)

i = 0
while i < 3600:
    driver.title
    time.sleep(1)
    i += 1
b = browser.find_by_tag("body")

这工作正常,除非一旦关闭浏览器并且程序结束,我会收到一条显示在 python 终端中的回溯消息:

Traceback(最近一次调用最后一次): 文件“路径...”,第 32 行,在 司机.title 文件“路径...”,第 194 行,在标题中 resp = self.execute(Command.GET_TITLE) 文件“路径...”,第 173 行,在执行中 self.error_handler.check_response(响应) 文件“路径...”,第 164 行,在 check_response 引发异常类(消息、屏幕、堆栈跟踪) NoSuchWindowException:消息:u'无法获取浏览器'

我明白为什么会这样显示,但这是故意的行为。我希望 Python 终端在浏览器关闭后立即关闭,没有消息。有什么想法吗?

【问题讨论】:

    标签: python selenium


    【解决方案1】:

    最后,将脚本的结尾更改为此完成了我想要做的事情:

    try:
        i = 0
        while i < 10:
            driver.title
            time.sleep(1)
            i += 1
        b = browser.find_by_tag("body")
    
    except:
        driver.close()
        subprocess.Popen("taskkill /f /IM IEDriverServer.exe")
    

    当然我也必须导入子流程库。

    【讨论】:

      猜你喜欢
      • 2018-06-10
      • 2016-02-17
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      相关资源
      最近更新 更多