Android有一种技术可以将文本转换为按钮。您将元素设置为可单击,然后为其定义onClick()方法。
在Appium方面,我所看到的是该元素的文本以" @"结尾。字符。例如来自" UI Automator Viewer" :
(2)TextView:购买商品@ [69,1038] [1011,1110]
' @'在实际手机上显示为箭头符号,然后单击箭头,只有箭头,将带您进入另一个对话框(在这种情况下,一个用于购买)。手动单击文本本身不会将应用程序移动到对话框。只需单击箭头即可。
我的Python代码如下:
self.driver.find_element_by_id("com.mycompany.project:id/make_a_purchase_text").click()
click()方法不会将我带到正确的对话框。事实上,根本没有明显的事情发生。我点击了许多按钮的元素,以便达到这一点,所以我知道我的设置很好。在Appium中是否有任何支持进行这种控制?
答案 0 :(得分:0)
我不确定这是否是最佳方式。对我来说,似乎selenium WebElement无法检测给予TextView或UIAStaticText的附加属性。因此,当我们分配click属性时,元素后面的基类不能执行click事件。 因此,作为一种解决方法,我将触摸事件发送到所需的x,y位置
driver.executeScript("mobile: tap", new HashMap<String, Double>() {
{
put("tapCount", 1d);
put("touchCount", 1d);
put("duration", 0.52478515625);
put("x", 127d);
put("y", 571d);
}
});