Hybrid混合应用-Element is not clickable at point

做Hybrid混合应用自动化测试时,切换到WebView模式,查找控件并点击时,报错如下:

An unknown server-side error occurred while processing the command.
 Original error: unknown error: Element is not clickable at point (108, 510)
Other element would receive the click: 
<div style="position: absolute; z-index: 9999; 
overflow: hidden; height: 6px !important; left: 2px; right: 2px; bottom: 0px;">...</div>
  (Session info: chrome=43.0.2357.121)

仔细查看Html页面原码后,发现要点击的元素,是在frame框架里的。

所以解决办法是要先进入frame框架,然后查找元素并进行点击的操作。

关键代码如下(appium.java_client):

AppiumDriver<?> driver;

driver.getContextHandles(); ---得到所有的上下文环境

driver.context("WEBVIEW_包名"); ---切换到webView控件

driver.context("NATIVE_APP");---切换到原生应用

driver.switchTo.frame("frame控件的id"); ---切换到frame,除了使用它的id,还可以使用其它的方式进行切换,有些时候frame是没有给它的id属性的

driver.switchTo().defaultContent(); ---退出frame框架

WebElement ele=driver.findElement(By.cssSelector("button.f")); ---查找控件,当切换到webView控件里面时,就完全按照网页元素查找方式去使用即可 

ele.getText(); ---得到元素的文本信息

手机web网页一般是H5开发的,对于元素的点击事件,一般绑定的事件是tap,(暂时还没有看到click事件的)所以对于手机web元素的点击,使用js的方式。例如下:

第一步:将driver转换成JavascriptExecutor接口对象

JavascriptExecutor js=driver;

第二步:触发控件的tap事件

js.executeScript("$('div.move:first').trigger('tap')");

这里使用了jquery语法

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值