1、找不到webview Handle
Set the following in the onCreate method in your Android project.
WebView.setWebContentsDebuggingEnabled(true);
而且手机的应用是运行的,release版不可以
2、webview元素点击不响应
java中调用js,找到元素, chromedriver触发webview中的tap事件就可以实现了。
JS获取HTML元素3个方法:document.getElementsByName()、document.getElementById()、document.getElementsByTagName()、
新添加的方法document.getElementsByClassName()
String window = null;
Object[] array = driver.getWindowHandles().toArray();
window = array[array.length-1].toString();
driver.switchTo().window(window);
System.out.println("window:"+window);
return window;
}
System.out.println(obj);
6、部分源码如下
@Test
public void test00() throws InterruptedException{
Thread.sleep(5000);
FrequentAction.product(driver);
Thread.sleep(5000);
//原生操作
driver.findElementById("XXX").click();
//当前页有h5页面
Set<String> contextNames = driver.getContextHandles();
for (String contextName : contextNames) {
// 遍历获取下来的context对象,若发现context对象包含WEBVIEW字样的时候,就切换到该对象下
if (contextName.contains("WEBVIEW")) {
driver.context(contextName);
}
}
//js实现点击操作
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("document.getElementsByClassName('mui-navigate-right goHistory')[0]."
+ "dispatchEvent(new CustomEvent('tap', {detail: {},bubbles: true,cancelable: true}));");
}