我有一个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终端在浏览器关闭后立即关闭,没有消息。有什么想法吗?
答案 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")
当然我也必须导入子进程库。