双击.py程序闪退的问题
按照教程自己写了个可以简单进行网站查询的工具,在pycharm里能够正常运行,在资源管理器里双击文件就会闪退,希望大佬看看代码有没有什么问题{:10_243:}from selenium import webdriver
from selenium.webdriver.common.keys import Keys
class Search:
def __init__(self, text):
self.text = text
self.driver = None
def open_web(self):
global driver
driver = webdriver.Edge(r'C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe')
driver.maximize_window()
self.driver = driver
def text_solve(self):
if self.text.lower() == 'bd' \
or self.text.lower() == 'bg' \
or self.text.lower() == 'cd':
self.text = list(self.text)
del self.text
self.text = ''.join(self.text)
def search_web(self):
bd_url = 'https://www.baidu.com/'
bing_url = 'https://cn.bing.com/?FORM=Z9FD1'
csdn_url = 'https://www.csdn.net/?spm=1000.2115.3001.5359'
if self.text.lower() == 'bd':
self.driver.get(bd_url)
self.text_solve()
self.driver.find_element_by_xpath('//*[@id="kw"]').send_keys(self.text)
self.driver.find_element_by_xpath('//*[@id="kw"]').send_keys(Keys.ENTER)
elif self.text.lower() == 'bg':
self.driver.get(bing_url)
self.text_solve()
self.driver.find_element_by_xpath('//*[@id="sb_form_q"]').send_keys(self.text)
self.driver.find_element_by_xpath('//*[@id="sb_form_q"]').send_keys(Keys.ENTER)
elif self.text.lower() == 'cd':
self.driver.get(csdn_url)
self.text_solve()
self.driver.find_element_by_xpath('//*[@id="toolbar-search-input"]').send_keys(self.text)
self.driver.find_element_by_xpath('//*[@id="toolbar-search-input"]').send_keys(Keys.ENTER)
def run(self):
self.open_web()
self.search_web()
if __name__ == '__main__':
while True:
text = input('请输入搜索内容:')
if text.lower() == 'bd' \
or text.lower() == 'bg' \
or text.lower() == 'cd':
Search(text).run()
break
else:
print('识别错误~')
print('请在搜索内容前加关键词(bd:百度;bg:必应;cd:CSDN)')
谢谢各位大佬了,找到问题了,主要是pycharm使用比较多,安装模块也是使用pycharm里面的模块安装,要在其他地方运行程序需要在cmd里面再装一遍需要的模块{:10_266:}{:10_266:} 在 if __name__ == "__main__" 里 加一行 input() 确定是IDLE吗 qiuyouzhi 发表于 2021-7-3 09:43
在 if __name__ == "__main__" 里 加一行 input()
已经有一行text = input('请输入搜索内容:')了 叼辣条闯世界 发表于 2021-7-3 11:50
已经有一行了
额,你貌似并不理解我加这个 input 的意义是什么
它就是为了阻塞这个程序,让它不闪退,而不是接收输入 其实不是闪退,而是代码执行完毕后,程序会自动退出,所以你看到的就是一闪的画面.按楼上所说的,在最末尾加个input 可以理解为暂停程序,显示结果 类似于按任意键后退出 防止程序跑完后会自动退出
这样啊
页:
[1]