问答 请教一个 appium 点击不到的问题,求大佬帮帮我,今天郁闷了一天了。

fKkK · 2021年04月06日 · 最后由 fKkK 回复于 2021年04月06日 · 2078 次阅读

我说一下我的环境:
测试工具:appium
设备:iOS 14.0.1 的 iPhone XR
App:Safari

一下是我的地址栏的信息

Payload details:
type : Button
name : URL
visible : True
label : 地址
rawIdentifier : URL
value : ‎3g.163.com
isEnabled : b'1'
isVisible : b'1'
rect : {'y': 52, 'x': 19, 'width': 376, 'height': 36}
pos : [0.5, 0.078125]
size : [0.9082125603864735, 0.04017857142857143]
zOrders : {'local': 0, 'global': 0}
anchorPoint : [0.5, 0.5]

我设置 y 的坐标为 43 居然可以点击。我一个个尝试大概范围是 43 ~ 97。我想请问一下为什么范围不是 52 ~(52 + 36)。这个问题让我很郁闷

备注:
以下是我的配置:

platformName=phone_info['platform'],
platformVersion={$platform_version},
deviceName={$name},
browserName='Safari',
nativeWebTap=True,
clearSystemFiles=True,
fullReset=False,
autoWebview=True,
newCommandTimeout=100000,

# iOS Only
udid={$device_id},
autoAcceptAlerts=True,
nativeInstrumentsLib=True,
skipLogCapture=True,
# autoDismissAlerts=True,
safariInitialUrl="about:blank",
safariOpenLinksInBackground=False,
interKeyDelay=0,

共收到 6 条回复 时间 点赞

你获取这个按钮,然后拿他的坐标数据,再进行处理?别纠结。

sleep 一下试试

截个图看看?从你发的信息看,这个控件是 safari 浏览器的地址栏。地址栏在滑动时会自动收起的,是不是和这个有关?

PS:不知道你点击地址栏是不是为了设定网页地址,如果是,可以直接用 webdriver 的 api 设定地址的,不用直接点这个地址栏控件。

fKkK #3 · 2021年04月06日 Author
恒温 回复

但是如果不是这么计算的话,我就不知道怎么点击网页里面的按钮。我举个例子,我打开的网页里面有一个元素,并且我获取到了坐标等信息,如图。按道理来说,我是 iOS 手机,应该是点击的坐标是 98(浏览器头部 + 刘海)到 98 + 54 这个区域。但是我现在怎么都点击不到。我还想到一种方案就是换算,通过 js 拿这个头部的坐标,在换算成真实点击的坐标。但是想着前面这种方式简单,如果弄好了,前面这种方式更加靠谱一点。但是现在搞得很纠结,一直点击不对

fKkK #2 · 2021年04月06日 Author
MarvinWu 回复

没用的,我是获取原生的坐标,哪怕切换到原生的 context 也一样问题

fKkK #1 · 2021年04月06日 Author
陈恒捷 回复

和这个没有关系。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册