鱼C论坛

 找回密码
 立即注册
查看: 4571|回复: 7

双击.py程序闪退的问题

[复制链接]
发表于 2021-7-3 09:18:12 | 显示全部楼层 |阅读模式
20鱼币
按照教程自己写了个可以简单进行网站查询的工具,在pycharm里能够正常运行,在资源管理器里双击文件就会闪退,希望大佬看看代码有没有什么问题

  1. from selenium import webdriver
  2. from selenium.webdriver.common.keys import Keys


  3. class Search:
  4.     def __init__(self, text):
  5.         self.text = text
  6.         self.driver = None

  7.     def open_web(self):
  8.         global driver
  9.         driver = webdriver.Edge(r'C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe')
  10.         driver.maximize_window()
  11.         self.driver = driver

  12.     def text_solve(self):
  13.         if self.text[0:2].lower() == 'bd' \
  14.                 or self.text[0:2].lower() == 'bg' \
  15.                 or self.text[0:2].lower() == 'cd':
  16.             self.text = list(self.text)
  17.             del self.text[0:2]
  18.             self.text = ''.join(self.text)

  19.     def search_web(self):
  20.         bd_url = 'https://www.baidu.com/'
  21.         bing_url = 'https://cn.bing.com/?FORM=Z9FD1'
  22.         csdn_url = 'https://www.csdn.net/?spm=1000.2115.3001.5359'
  23.         if self.text[0:2].lower() == 'bd':
  24.             self.driver.get(bd_url)
  25.             self.text_solve()
  26.             self.driver.find_element_by_xpath('//*[@id="kw"]').send_keys(self.text)
  27.             self.driver.find_element_by_xpath('//*[@id="kw"]').send_keys(Keys.ENTER)
  28.         elif self.text[0:2].lower() == 'bg':
  29.             self.driver.get(bing_url)
  30.             self.text_solve()
  31.             self.driver.find_element_by_xpath('//*[@id="sb_form_q"]').send_keys(self.text)
  32.             self.driver.find_element_by_xpath('//*[@id="sb_form_q"]').send_keys(Keys.ENTER)
  33.         elif self.text[0:2].lower() == 'cd':
  34.             self.driver.get(csdn_url)
  35.             self.text_solve()
  36.             self.driver.find_element_by_xpath('//*[@id="toolbar-search-input"]').send_keys(self.text)
  37.             self.driver.find_element_by_xpath('//*[@id="toolbar-search-input"]').send_keys(Keys.ENTER)

  38.     def run(self):
  39.         self.open_web()
  40.         self.search_web()


  41. if __name__ == '__main__':
  42.     while True:
  43.         text = input('请输入搜索内容:')
  44.         if text[0:2].lower() == 'bd' \
  45.                 or text[0:2].lower() == 'bg' \
  46.                 or text[0:2].lower() == 'cd':
  47.             Search(text).run()
  48.             break
  49.         else:
  50.             print('识别错误~')
  51.             print('请在搜索内容前加关键词(bd:百度;bg:必应;cd:CSDN)')
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-7-3 17:45:55 | 显示全部楼层
谢谢各位大佬了,找到问题了,主要是pycharm使用比较多,安装模块也是使用pycharm里面的模块安装,要在其他地方运行程序需要在cmd里面再装一遍需要的模块
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-3 09:43:51 | 显示全部楼层
在 if __name__ == "__main__" 里 加一行 input()
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-3 11:48:28 | 显示全部楼层
确定是IDLE吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-3 11:50:41 | 显示全部楼层
qiuyouzhi 发表于 2021-7-3 09:43
在 if __name__ == "__main__" 里 加一行 input()

已经有一行
  1. text = input('请输入搜索内容:')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-3 11:58:01 | 显示全部楼层

额,你貌似并不理解我加这个 input 的意义是什么
它就是为了阻塞这个程序,让它不闪退,而不是接收输入
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-3 17:10:59 | 显示全部楼层
其实不是闪退,而是代码执行完毕后,程序会自动退出,所以你看到的就是一闪的画面.按楼上所说的,在最末尾加个input 可以理解为暂停程序,显示结果 类似于按任意键后退出 防止程序跑完后会自动退出
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-6 20:49:12 | 显示全部楼层
这样啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 14:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表