python selenium关闭程序,没有回溯消息

时间:2014-06-16 19:44:31

标签: python selenium

我有一个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终端中显示的回溯消息:

追踪(最近一次通话):   文件“path ...”,第32行,in     driver.title   在标题中记录“路径...”,第194行     resp = self.execute(Command.GET_TITLE)   文件“path ...”,第173行,执行中     self.error_handler.check_response(响应)   在check_response中的文件“path ...”,第164行     提出exception_class(消息,屏幕,堆栈跟踪) NoSuchWindowException:消息:你不能得到浏览器'

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

1 个答案:

答案 0 :(得分:0)

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

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")

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