0
点赞
收藏
分享

微信扫一扫

pytest高版本兼容test_data[“log“] = _handle_ansi(“\n“.join(logs))错误

伽马星系 2024-11-06 阅读 8

一、问题现象:

执行selenium+pytest结束时报:

INTERNALERROR>   File "D:\workspace\pytestframe\.venv\Lib\site-packages\pytest_html\report_data.py", line 141, in add_test
INTERNALERROR>     test_data["log"] = _handle_ansi("\n".join(logs))
INTERNALERROR>                                     ^^^^^^^^^^^^^^^
INTERNALERROR> TypeError: sequence item 0: expected str instance, div found

二、问题解决:

定位这个问题,进入对应的代码文件夹:

 

在报错行加入这行代码,即可解决问题:

logs = [log.text if hasattr(log, 'text') else str(log) for log in logs]

三、解释:

这个错误信息表明在尝试连接一个序列(logs)时,序列中的第一个元素是一个 div 对象,而不是字符串。join 方法只能处理字符串,因此引发了 TypeError

转换 div 对象为字符串: 如果 logs 中包含 div 对象,确保将其转换为字符串。你可以使用 .text 属性或 .get_attribute("outerHTML") 方法获取其文本或 HTML 内容

当然很多selenium相关问题都和webdriver的版本和浏览器匹配有关,一定要下载和浏览器相对应的版本:

python-webdriver谷歌浏览器的driver,用于selenium内核驱动:

http://chromedriver.storage.googleapis.com/index.html

123以后的谷歌浏览器版本:

Chrome for Testing availability

举报
0 条评论