我正在尝试在任务调度程序中调度:
1.运行批处理文件
1.激活conda环境
1.运行Python程序
1.退出命令提示符
一切正常,除了python.exe窗口将保持打开,而命令提示符关闭。
我的批处理文件:(睡眠是为了运行python代码。它需要几秒钟)
call activate python2
start C:\path\to\Anaconda3\envs\python2\python.exe testtest.py
sleep 30
exit
字符串
我的python脚本:
driver = webdriver.Chrome(executable_path="C:\path\to\chromedriver")
driver.get('http://website.com')
# Find email and pw fields and then fill them in
email = driver.find_element_by_id("user_email")
email.send_keys('[email protected]')
pw = driver.find_element_by_id("user_password")
pw.send_keys('password')
# Click on sign-in button
driver.find_element_by_class_name("button").click()
time.sleep(5)
# Click on save button to update
driver.find_element_by_class_name("button").click()
# Close driver
driver.close()
型
最后一点,程序/脚本是批处理文件,没有参数,开始在批处理文件所在的目录中。
任何帮助将不胜感激!
4条答案
按热度按时间odopli941#
把你的python代码放在
main()
函数中。并给予:
字符串
最后。刚刚测试过的对我来说很有效。
bcs8qyzn2#
@pk2019的回答真的帮到我了。
一个改进是使用
字符串
不需要做杀人的脏活。
r55awzrz3#
我不是一个pythonMaven,但我认为你只需要call sys.exit() or quit()。
不要使用sleep并等待太长时间或可能不够长,而是使用wait选项调用start:
字符串
如果你不需要这个批处理文件来做任何其他的事情,你可以启动python脚本并退出。
neskvpey4#
我在Windows上运行
geckodriver.exe
Firefox web驱动程序的Python selenium web scraper遇到了类似的问题(通过任务管理器使用.bat文件执行)。问题是我的geckodriver.exe
进程在Python脚本完成后仍在运行.我认为运行进程阻止了Windows命令提示符关闭。为了测试这个预感,我将
tasklist
命令插入到.bat文件中,在Python脚本之前和之后。它会将正在运行的Windows任务列表打印到控制台.我注意到geckodriver.exe
文件仍然在运行Python脚本。杀死Windows进程的方法(使用
taskkill
)在以下两个不同的Stackoverflow响应中描述:以下是
taskkill
的Windows文档:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/taskkill在我的例子中,我把它作为倒数第二行:
taskkill /im geckodriver.exe /f
,最后一行是exit
。