我在 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下载了它,现在它可以工作了。感谢所有试图帮助我的人。
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)
添加回答
举报
0/150
提交
取消