为了账号安全,请及时绑定邮箱和手机立即绑定

Python selenium:获取元素文本的动态更新

Python selenium:获取元素文本的动态更新

一只名叫tom的猫 2021-12-16 16:06:47
我在 Python 和 Selenium 框架的一个基本问题上失败了。我想要做的就是循环阅读元素的文本。到目前为止,我可以参考该元素并阅读文本。但是当我.text在无限循环中访问该属性时,我在很短的时间内收到以下错误:Traceback (most recent call last):  File "C:\Users\lucci\AppData\Local\Programs\Python\Python35\lib\site-packages\urllib3\connection.py", line 159, in _new_conn    (self._dns_host, self.port), self.timeout, **extra_kw)  File "C:\Users\lucci\AppData\Local\Programs\Python\Python35\lib\site-packages\urllib3\util\connection.py", line 80, in create_connection    raise err  File "C:\Users\lucci\AppData\Local\Programs\Python\Python35\lib\site-packages\urllib3\util\connection.py", line 70, in create_connection    sock.connect(sa)OSError: [WinError 10048] Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werdenDuring handling of the above exception, another exception occurred:Traceback (most recent call last):  File "C:\Users\lucci\AppData\Local\Programs\Python\Python35\lib\site-packages\urllib3\connectionpool.py", line 600, in urlopen    chunked=chunked)  File "C:\Users\lucci\AppData\Local\Programs\Python\Python35\lib\site-packages\urllib3\connectionpool.py", line 354, in _make_request    conn.request(method, url, **httplib_request_kw)  File "C:\Users\lucci\AppData\Local\Programs\Python\Python35\Lib\http\client.py", line 1107, in request    self._send_request(method, url, body, headers)  File "C:\Users\lucci\AppData\Local\Programs\Python\Python35\Lib\http\client.py", line 1152, in _send_request    self.endheaders(body)  File "C:\Users\lucci\AppData\Local\Programs\Python\Python35\Lib\http\client.py", line 1103, in endheaders    self._send_output(message_body)错误消息指出每个套接字地址只能使用一次。产生上述错误的代码如下:text_status = WebDriverWait(driver, TIMEOUT).until(EC.presence_of_element_located((By.CLASS_NAME, "text--34J_5 uppercase--ii2bO font-small--19CMC")))if text_status is not None:    print("Found status")while True:    print(text_status.text)我将非常感谢您的帮助。我只想实时访问元素的文本。文本可以相对较快地更改(大约每秒 2 次)。谁能告诉我该怎么做或我的错误在哪里?
查看完整描述

2 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

我可以自己解决我的问题。使用 MS Edge 时,MicrosoftWebDriver 似乎存在问题。显然,这不支持该keepalive标志,因此将为每个操作打开一个新连接。如果您采取许多行动,迟早会导致过载,从而导致崩溃。这就是为什么我geckodriver为 Mozilla Firefox下载了它,现在它可以工作了。感谢所有试图帮助我的人。


查看完整回答
反对 回复 2021-12-16
?
aluckdog

TA贡献1847条经验 获得超7个赞

除了您已经看到的之外,您还可能会遇到陈旧的元素异常。我建议你每次要阅读文本时都找到该元素。这将确保您有一个活动元素并且不应该遇到上述异常。


while True:


    text_status = WebDriverWait(driver,TIMEOUT).until(EC.presence_of_element_located((By.CLASS_NAME, "text--34J_5 uppercase--ii2bO font-small--19CMC")))


    print(text_status.text)


查看完整回答
反对 回复 2021-12-16
  • 2 回答
  • 0 关注
  • 289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信