Appium自动化如何点击一个textview类型的组件

问题


如何直接勾选同意协议呢?

报错信息

代码写到这里不知道该怎么实现,如图是一个textview类型的组件,如果直接通过driver.findElement() 获取到这个element,然后直接调用click的话,会点进服务协议,不会勾选同意协议

环境

// 1. 定位到 TextView 元素
MobileElement textViewElement = driver.findElement(By.id(“your_textview_id”));

// 2. 定位到同意协议的 CheckBox 元素
MobileElement checkBoxElement = driver.findElement(By.id(“your_checkbox_id”));

// 3. 确保 CheckBox 可见并可点击
if (checkBoxElement.isDisplayed() && checkBoxElement.isEnabled()) {
// 4. 点击同意协议的 CheckBox 元素
checkBoxElement.click();
}

// 5. 再次点击 TextView 元素
textViewElement.click();

嗯嗯,谢谢,我自己想了下,最后的解决办法是:先定位到元素的左上角,然后x,y分别偏移一段距离避开那两个协议,使用W3C Action来进行点击,最后也可以

不好意思,上次看了你的回复我又想了下,你这种方式貌似不行,如下图,checkbox是内嵌在元素里面的,跟使用协议都在一个元素里,不能通过步骤2的方式定位到。这种有什么办法解决吗?是不是只能通过移动像素点,然后W3C Action点击的方式实现呢?