解决Pycharm使用 selenium 打开网页后闪退的方法

这篇具有很好参考价值的文章主要介绍了解决Pycharm使用 selenium 打开网页后闪退的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用pycharm运行模拟登录QQ邮箱打开chrome浏览器后,浏览器自动退出。代码如下

from selenium import webdriver
from selenium.common.exceptions import TimeoutException  # 超出时长
from selenium.webdriver.common.by import By   # 查找元素
from selenium.webdriver.support import expected_conditions as EC  # 元素是否加载完毕
from selenium.webdriver.support.ui import WebDriverWait  # 页面等待

from configparser import ConfigParser  # 读取ini文件

cfg = ConfigParser()
r = cfg.read('ningzhi.ini')   # 这个ningzhi.ini是我自己的文件,目的就是防止账号密码在代码中泄露,大家在模仿的时候可以自己创建这个文件(后缀为ini文件)
'''文件内容:
[user]
user:账号
[password]
password:密码
'''
user = cfg.get('user','user')
password = cfg.get('password','password')


class Login_QQ:
    def __init__(self):
        self.driver = webdriver.Edge()
        self.driver.get("https://mail.qq.com/")
        self.wait = WebDriverWait(self.driver, 10)

    def search(self):
        try:
            self.driver.switch_to.frame('login_frame')   # 进入iframe  方法一
            # 找到iframe  通过iframe进行点击
            # login_iframe = self.wait.until(EC.presence_of_element_located((By.ID,'login_frame')))
            # # 进入新的页面进行点击   方法二
            # self.driver.switch_to.frame(login_iframe)
            # 获取账号密码登陆按钮
            # self.wait.until(EC.presence_of_element_located((By.XPATH,'//*[@id="switcher_plogin"]'))).click()
            # 获取账号输入框
            self.wait.until(EC.presence_of_element_located((By.ID, 'u'))).send_keys(user)
            # 获取密码输入框
            self.wait.until(EC.presence_of_element_located((By.ID, 'p'))).send_keys(password)
            # 获取登陆按钮,并点击
            self.wait.until(EC.presence_of_element_located((By.ID, 'login_button'))).click()



        except TimeoutException:
            return self.search()


if __name__ == '__main__':
    spider = Login_QQ()
    spider.search()



运行环境:

pycharm版本:2021.3

python版本:3.10

分析:

1、我首先检查Chrome浏览器驱动与浏览器版本是否匹配,检查后发现完全匹配  ,这里我排除了驱动的问题

2,接下来我又改用Edge浏览器与浏览器驱动,发现还是闪退,这里我又排除浏览器的问题

3,既然浏览器和驱动都没有问题,那就只剩下代码和pycharm问题

解决方案

经过我反复测试给出了两种解决方案:

方案一:

在代码的最下方加一个死循环

if __name__ == '__main__':
    spider = Login_QQ()
    spider.search()

while True:
    pass

方案二:

降selenium版本

我挑了4.4.3发现解决了问题,所以也就没有再试其他的版本,也许其他的低版本也可以解决问题。

pip install selenium==4.4.3

闲聊:


也许这个chrome自动退出的问题其实并不是个问题,代码成功运行结束,浏览器关闭,可能在selenium4.7.2版本上就是这样运行的,而低版本的selenium在代码运行完成之后就不会自动关闭浏览器,目前来说我比较喜欢后者,所以选择了安装4.4.3。

希望可以帮助到遇到和我一样问题的小伙伴,感谢阅读!
 

 文章来源地址https://www.toymoban.com/news/detail-458162.html

到了这里,关于解决Pycharm使用 selenium 打开网页后闪退的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • bat文件打开后闪退如何解决

    运行cmd,分别输入java javac ,回车。 若显示不是内部或外部命令,也不是可运行的程序。则说明缺少JDK(java.exe和javac.exe)。 可从官网下载: Java Downloads | Oracle  下载后,右击此电脑,属性-高级系统设置-环境变量。在里面的用户变量里的path新建一条路径,如下图所示(下图

    2024年02月13日
    浏览(61)
  • 【VRTK】【Unity】【PICO】PICO项目打包后闪退的根本原因

    一开始打包运行好好的PICO项目,中途用Preview模式开发了一阵后,再次打包就闪退了。 项目设置没有动过,那么可能是Preview开发过程中引入的包导致的问题。 千万不要在PICO项目中导入Oculus包。我原本想用一些Oculus包内的Assets资源,所以导入了Oculus,现在叫Meta的开发SDK包,经

    2024年01月22日
    浏览(135)
  • VS打开Qt的ui界面后闪退(ui无法打开文件)的解决办法

    VS打开Qt的ui界面几秒后闪退(ui无法打开文件)的解决办法 问题: 近两天在vs中直接点解ui界面,自动调用Qt Designer打开界面几秒后Designer界面闪退,回到vs界面,并有“——.ui无法打开文件”的错误提示。 这个问题应该是Windows或Qt哪些东西更新造成的,用Qt的几个同学都有反

    2024年02月11日
    浏览(70)
  • selenium 程序执行完之后,Chrome闪退的解决方法

    问题描述:之前用selenium下的webdriver打开chrome网页后,网页会一直留在页面,但是昨天突然浏览器运行完后,自己就退出了。 现象如下面的gif,这个gif有点长,反正就是自己会闪退:   网上一番搜索,有以下几个方面: 1、任务结束后线程随主程序一起结束。 2、webdriver和浏

    2024年02月02日
    浏览(67)
  • 学习python中遇到的问题:selenium 程序执行完之后,Chrome闪退的解决方法‘

    可能因为版本更新,没下载好choredriver对应的,对应驱动下载win x32版,系统是win x64可正常使用,这也是当时疑惑的点 1打开关于chrome设置关于的页面,在这里就可以看到google chrome浏览器的版本号了. 2.通过自己的版本下载相应的chromedriver.exe 对比步骤: 打开下载链接: http:

    2024年01月23日
    浏览(49)
  • jupyter notebook打开后闪退

    在命令行中输入jupyter notebook后,命令行闪退,报错如下: 原因是我之前指定存放jupyter代码的文件夹被我删除了,现在系统找不到这个文件夹,所以才会报错。 解决办法: 首先输入命令jupyter notebook --generate-config,查询配置文件地址,见下图。 使用ctrl+f进行查找 在桌面上创

    2024年02月11日
    浏览(63)
  • Pycharm_Selenium 打开浏览器后立马闪退

    在使用webdriver打开浏览器的时候,会遇到浏览器打开后立刻闪退的情况,这是因为没有添加休眠时间,解决方案如下: 添加time.sleep(10),则浏览器在打开5秒后关闭,  time.sleep(),则浏览器不自动关闭

    2024年02月06日
    浏览(64)
  • python使用selenium 打开谷歌浏览器闪退, 怎么解决

    在使用 Selenium 操作 Chrome 浏览器时,如果 Chrome 浏览器闪退,则可能是以下几个方面出现了问题: 1. Chromedriver 版本与 Chrome 浏览器版本不匹配 你需要确保你正在使用的 Chromedriver 版本与你的 Chrome 浏览器版本匹配。你可以在 Chromedriver 官网上找到最新版本的 Chromedriver,并下载

    2024年02月11日
    浏览(62)
  • python使用selenium 打开谷歌浏览器闪退解决办法

    在使用 Selenium 操作 Chrome 浏览器时,如果 Chrome 浏览器闪退,则可能是以下几个方面出现了问题: 1. Chromedriver 版本与 Chrome 浏览器版本不匹配 你需要确保你正在使用的 Chromedriver 版本与你的 Chrome 浏览器版本匹配。你可以在 Chromedriver 官网上找到最新版本的 Chromedriver,并下载

    2024年02月08日
    浏览(65)
  • Android studio:打开应用程序闪退的问题

    在开发Android应用程序的过程中遇到的问题 在开发(或者叫测试,这么简单的程序可能很难叫开发)好一个android之后,在Android studio中调试开发好的app时,编辑器没有提示错误,在虚拟机中的下载也没有问题,但是app一打开就闪退,再次打开就会出现app keeps stopping的字样 查看

    2024年02月04日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包