selenium:远程主机强迫关闭了一个现有的连接。

ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

  • 出现上述原因的情况为提早的关闭掉了浏览器,导致后面的代码没有找到元素的一下基本信息,如大小,text等信息
  • 出错代码展示:
from selenium import webdriver
import login
url = 'http://www.baidu.com'
driver = webdriver.Firefox()
login.openURL(driver,url)
newsElement = driver.find_element_by_name("tj_trnews")
login.closeBrowser(driver)
# 获取‘新闻’链接元素的基本信息
print(u'元素的标签名:',newsElement.tag_name)
print(u'元素的size:',newsElement.size)

-正确代码展示,注意login.clsoeBrowser()和错误代码的位置

from selenium import webdriver
import login
url = 'http://www.baidu.com'
driver = webdriver.Firefox()
login.openURL(driver,url)
newsElement = driver.find_element_by_name("tj_trnews")
# 获取‘新闻’链接元素的基本信息
print(u'元素的标签名:',newsElement.tag_name)
print(u'元素的size:',newsElement.size)
login.closeBrowser(driver)
这个错误是MySQL数据库中的死锁错误。死锁是指两个或多个事务在相互等待对方释放资源时被永久阻塞的情况。当一个事务持有一个锁并请求另一个事务持有的锁时,就会发生死锁。为了解决这个问题,可以尝试以下几种方法: 1.重启事务:可以尝试重启事务,这可能会解决死锁问题。但是,这种方法并不总是有效,因为死锁可能会再次发生。 2.更改事务隔离级别:可以尝试更改事务隔离级别,以便在读取和写入数据时减少锁定。例如,将隔离级别从Serializable更改为Repeatable Read或Read Committed。 3.优化查询:可以尝试优化查询,以便在执行查询时减少锁定。例如,可以添加索引或使用更有效的查询语句。 4.分解大事务:可以尝试将大事务分解为多个小事务,以便在执行事务时减少锁定。 5.使用锁超时:可以尝试使用锁超时,以便在等待锁定一段时间后自动释放锁定。 以下是一个示例代码,演示如何使用锁超时来解决死锁问题: ```python import mysql.connector # 建立数据库连接 cnx = mysql.connector.connect(user='username', password='password', host='localhost', database='database_name') # 获取数据库游标 cursor = cnx.cursor() # 设置锁超时时间为10秒 query = "SET innodb_lock_wait_timeout = 10" cursor.execute(query) # 执行查询语句 query = "SELECT * FROM table_name WHERE column_name = 'value'" cursor.execute(query) # 处理查询结果 for result in cursor: print(result) # 关闭游标和数据库连接 cursor.close() cnx.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值