You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Appium中get_window_size()返回值无法用width/height访问报错咨询

解决Appium get_window_size()返回字典导致的AttributeError问题

这个问题我之前帮同事排查过,其实就是对Appium返回值的类型理解错了~

你写的代码里默认get_window_size()会返回一个带有width和height属性的对象,但实际在你的Appium客户端版本里,这个方法返回的是字典,键为'width'和'height',所以用.width这种属性访问的方式自然会触发AttributeError: 'dict' object has no attribute 'width'。

修正后的代码

只需要把属性访问改成字典的键访问即可:

size = self.driver.get_window_size()
start_y = size['height'] * 0.5
end_y = size['height'] * 0.5
start_x = size['width'] * 0.8
end_x = size['width'] * 0.2
self.driver.swipe(start_x, start_y, end_x, end_y, 400)

兼容不同返回类型的健壮写法

如果担心不同Appium版本返回类型不一致(有些版本确实会返回对象),可以加个类型判断做兼容:

size = self.driver.get_window_size()
# 同时兼容字典和对象两种返回格式
if isinstance(size, dict):
    screen_width = size['width']
    screen_height = size['height']
else:
    screen_width = size.width
    screen_height = size.height

start_y = screen_height * 0.5
end_y = screen_height * 0.5
start_x = screen_width * 0.8
end_x = screen_width * 0.2
self.driver.swipe(start_x, start_y, end_x, end_y, 400)

这样不管返回的是字典还是属性对象,代码都能正常运行啦。

内容的提问来源于stack exchange,提问作者Iiro Alhonen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:03:47