webview 输入法_个人分享-混合框架【WebView 的中文输入问题】

// 支持中文输入

// 支付4.1~4.4的WEBVIEW中文输入

public void my_sendKeys(AppiumDriver driver, WebElement inputField,

String text) throws Exception { //

try {

// 跳过引导页

logger.info("----------开始输入----------");

// 支持 4.1~4.3 的模式 ,调用 ADB直接滑动

if (autoName.equals("Selendroid")) {

/*

* appium不支持中文输入 参考了robotium的以js方式为元素直接设置value的做法

* 利用Selenium中Webdriver执行js方法实现中文输入

*/

JavascriptExecutor jse = (JavascriptExecutor) driver;

String id_type = inputField.getAttribute("id");

System.out.println(inputField.getTagName());

if (!id_type.isEmpty()) {

// 这样判断后,所有空白都会被赋值

if (inputField.getTagName().equals("INPUT")) {

jse.executeScript("var inps = document.getElementsByTagName('input'); for(var i = 0,inp; inp = inps[i++];){ if(inp.id == '"

+ id_type

+ "'){ if(inp.style.display!=\"none\"){inp.value ='"

+ text + "'}}}");

}

if (inputField.getTagName().equals("TEXTAREA")) {

jse.executeScript("var inps = document.getElementsByTagName('textarea'); for(var i = 0,inp; inp = inps[i++];){ if(inp.id == '"

+ id_type

+ "'){ if(inp.style.display!=\"none\"){inp.value ='"

+ text + "'}}}");

}

} else {

// 这样判断后,所有空白都会被赋值

if (inputField.getTagName().equals("INPUT")) {

jse.executeScript("var inps = document.getElementsByTagName('input'); for(var i = 0,inp; inp = inps[i++];){if(inp.style.display!=\"none\"){inp.value ='"

+ text + "'}}");

}

if (inputField.getTagName().equals("TEXTAREA")) {

jse.executeScript("var inps = document.getElementsByTagName('textarea'); for(var i = 0,inp; inp = inps[i++];){if(inp.style.display!=\"none\"){inp.value ='"

+ text + "'}}");

}

}

} else {

inputField.sendKeys(text);

}

logger.info("----------开始输入 ok----------");

} catch (Exception ex) {

// TODO Auto-generated catch block

ex.printStackTrace();

throw ex;

} finally {

// 释放变量

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值