检查点 FAIL 检查JSON内状态码是否为1 suite setup fail | 'NoneType' object has no attribute 'execRet' Traceback: File "cases\A01_PC端\__st__.py", line 49, in suite_setup CHECK_POINT('检查JSON内状态码是否为1', int(content['code']) == 1) File "C:\Project\AdvertiseAutoTest_test\mytest\common.py", line 59, in CHECK_POINT Runner.curRunningCase.execRet = 'fail' AttributeError: 'NoneType' object has no attribute 'execRet'
时间: 2023-12-15 19:04:45 浏览: 351
这个错误是由于在执行测试用例的suite_setup过程中出现了问题。具体来说,错误发生在执行"cases\A01_PC端\__st__.py"文件中的suite_setup函数的第49行,其中调用了CHECK_POINT函数。
在CHECK_POINT函数中,它尝试将'fail'赋值给Runner.curRunningCase.execRet属性。然而,这里出现了一个问题,即Runner.curRunningCase是一个NoneType对象,而该对象没有execRet属性。因此,引发了AttributeError异常。
要解决这个问题,你可以检查Runner.curRunningCase对象是否正确地设置或初始化。确保它是一个有效的对象,并且具有execRet属性。另外,还要确保在调用CHECK_POINT函数之前正确地初始化Runner.curRunningCase对象。这样可以避免出现NoneType对象的情况。
相关问题
无法爬取出来,并且出现了下面的提示:Traceback (most recent call last): File "C:\Users\刘岩\.spyder-py3\temp.py", line 26, in <module> rows = table.find_all('tr') AttributeError: 'NoneType' object has no attribute 'find_all'
这个错误提示表明在`table.find_all('tr')`这一行代码中,`table`的值为`None`,而`NoneType`对象没有`find_all`方法。
这种情况通常是因为没有找到符合条件的元素。可能是因为HTML结构发生了变化,或者选择器表达式不准确。
建议你检查以下几点:
1. 确保URL正确:请确保你的URL是正确的,可以尝试在浏览器中访问该URL,看看是否可以打开并找到基金净值信息。
2. 检查选择器表达式:确认选择器表达式是否准确。你可以使用浏览器的开发者工具来检查基金净值信息表格的HTML结构,并确定正确的选择器。
3. 检查HTML结构变化:如果HTML结构发生了变化,例如类名或标签名称变化,那么原先的选择器可能无法正确定位到基金净值信息表格。请检查HTML结构的变化,并相应地更新你的选择器。
如果你能提供更多的HTML代码或URL,我可以帮助你更准确地定位问题并提供解决方案。
(E) Exception caught in handler {"exc": "'NoneType' object has no attribute 'shape'", "traceback": "Traceback (most recent call last):\n File \"/opt/nuclio/_nuclio_wrapper.py\", line 118, in serve_requests\n await self._handle_event(event)\n File \"/opt/nuclio/_nuclio_wrapper.py\", line 312, in _handle_event\n entrypoint_output = self._entrypoint(self._context, event)\n File \"/opt/nuclio/main.py\", line 43, in handler\n if masks.shape[0] > 0:\nAttributeError: 'NoneType' object has no attribute 'shape'\n", "worker_id": "0"}它的报错是这个
根据报错信息,问题出现在`masks.shape[] > 0`这一行。报错信息显示`'NoneType' object has no attribute 'shape'`,意味着`masks`对象为`None`,而`None`对象没有`shape`属性。
造成这个问题的可能原因是在之前的代码中,`masks`赋值为`None`,或者没有正确赋值。请确保在使用`masks`之前正确地给它赋值。
您可以在使用`masks`之前添加一个条件判断,避免对`None`对象使用`shape`属性。以下是修改后的代码示例:
```python
results = []
if masks is not None and masks.shape[0] > 0:
for label, score, seg in zip(class_ids, conf, masks):
# 解析分割掩码
mask = seg.argmax(axis=0) # 取最大值的索引,将二维掩码还原为一维
mask = mask.astype(np.uint8) # 将掩码转换为无符号整数类型
_, mask_binary = cv2.threshold(mask, 0, 255, cv2.THRESH_BINARY) # 将掩码转换为二值图像
# 获取分割多边形
contours, _ = cv2.findContours(mask_binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
contour = contours[0] if len(contours) > 0 else []
# 将分割多边形的点坐标转换为列表的点(points)形式
points = contour.squeeze().tolist() if len(contour) > 0 else []
results.append({
"confidence": str(score),
"label": labels.get(label, "unknown"),
"points": points,
"type": "polygon",
"mask": mask.tolist() # 将分割掩码转换为列表形式
})
```
在这个示例中,我先使用`is not None`来检查`masks`是否为`None`,然后再进行`masks.shape[0] > 0`的判断。这样可以避免对`None`对象使用`shape`属性时出现错误。
希望这次能够解决问题。如果您还有其他疑问,请随时提问。
阅读全文