今天写robotium脚本发现,用uiautomatorviewer定位百度贴吧的登录框是无法定位的,如图:

明显无法定位用户名、密码输入框,无法定位元素那就无法对控件无法操作

如何定位webview元素?

解决方案:

step:

1、手机连接上电脑,并打开App,打开需要定位的Webview的页面
2、电脑上打开Chrome,地址栏输入 chrome://inspect
3、点击devices标签,此时你会看到你设备上对应的App的包名

ps:必须翻墙链接外网,否则看不到效果

4、点击包名旁边的 inspect  ,就会进入chrome的调试工具,在这个调试工具就可以获取
当前webview的所有元素了。

测试百度app登录源码:

package com.example.tieba.test;

import org.junit.After;
import org.junit.Before;
import org.junit.Test; import android.os.PowerManager;
import android.test.ActivityInstrumentationTestCase2; import com.robotium.solo.By;
import com.robotium.solo.Solo; public class TestBaiduApp extends ActivityInstrumentationTestCase2 { // 定义变量
private Solo solo;
private static final String packageName = "com.baidu.tieba";
private static final String launchActivityName = "com.baidu.tieba.LogoActivity";
private PowerManager.WakeLock wakeScreenObject = null;
// 定义启动activity类
private static Class<?> loginActivity;
// 通过初始化静态块,加载启动activity
static {
try {
loginActivity = Class.forName(launchActivityName);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public TestBaiduApp() {
super(packageName, loginActivity);
// TODO Auto-generated constructor stub
}
private void init() {
solo = new Solo(getInstrumentation(), getActivity());
solo.scrollToSide(solo.LEFT, 0.9f);
// 唤醒设备
if (wakeScreenObject == null) {
wakeScreenObject = Util.wakeScreen(this);
}
}
@Before
protected void setUp() throws Exception {
super.setUp();
init(); } @After
protected void tearDown() throws Exception {
solo.finishOpenedActivities();
} @Test
public void test() {
assertTrue("如没进入登录页,可能有bug", solo.waitForText("随便看看", 1, 2000));
solo.clickOnText("登录",1);
//webview元素处理
// 输入用户名
solo.clearTextInWebElement(By.id("login-username"));
solo.enterTextInWebElement(By.id("login-username"), username);
// 输入密码
solo.clearTextInWebElement(By.id("login-password"));
solo.enterTextInWebElement(By.id("login-password"), password);
// 点击登录
solo.clickOnWebElement(By.id("login-submit"),1);
solo.sleep(10000);
} }

robotium之webview元素处理的更多相关文章

  1. Robotium源码解读-native控件/webview元素的获取和操作

    目前比较有名的Uitest框架有Uiautomator/Robotium/Appium,由于一直对webview元素的获取和操作比较好奇,另外Robotium代码量也不是很大,因此打算学习一下. 一. ...

  2. H5混合应用之webview元素定位工具

    一.工具选择 webview元素定位有三种方式: 使用driver.page_source方法,将获取到的页面内容写入到一个html文件中,然后使用浏览器打开html文件,使用F12调试用具进行元素定 ...

  3. webview元素定位

    genymotion 模拟器:android  5.0.0 python 2.7 appium 1.4.16.1 1.app原生元素定位(常用) driver.find_element_by_id(“ ...

  4. Appium 自动化测试(9) -- 在Uiautomator中查看webview元素

    在uiautomator中,直接查看不到webview中的元素,不知道大家遇到过没有?如下 解决方法如下: step0:将uiautomator关闭 step1:在appium 中,设置Android ...

  5. ios与js交互获取webview元素和赋值

    使用webview的stringByEvaluatingJavaScriptFromString的方法交互,直接提供实例. 下载:http://download.csdn.net/detail/hey ...

  6. 解决 hybird 应用中重复获取 WebView,导致页面元素无法识别的问题

    转载地址:http://blog.csdn.net/testman930/article/details/50799532 问题描述 在测APP的业务流,WebView和Native模式耦合在一起.例 ...

  7. Android——WebView

    WebView用途 通过Intent调用系统浏览器: 引言: Uri uri = Uri.parse(url);//url为你要链接的地址 Intent intent = new Intent(Int ...

  8. Robotium原则的实施源代码分析

    从前面的章节<Robotium源代码分析之Instrumentation进阶>中我们了解到了Robotium所基于的Instrumentation的一些进阶基础.比方它注入事件的原理等,但 ...

  9. Robotium源码分析之运行原理

    从上一章<Robotium源码分析之Instrumentation进阶>中我们了解到了Robotium所基于的Instrumentation的一些进阶基础,比如它注入事件的原理等,但Rob ...

随机推荐

  1. 【模板】Tarjan scc缩点

    代码如下 #include <bits/stdc++.h> using namespace std; const int maxv=1e4+10; const int maxe=1e5+1 ...

  2. asp 读cookie 下划线 丢失

    昨天有一个用户反应,登录后还是会显示:请登录后再使用. 我一查,原来有一个cookie设置后,无法正常读取. 整个情况是这样: 登录的时候,设置2个 cookie: user_name logon_t ...

  3. 关于使用IsapiRewrite重写,重定向的语句

    早上起床,发现之前的IsapiRewrite写法有改进的地方, 有几个废弃的网址可以使用IsapiRewrite的重定向,转到新的网址上来. 搞了有十分钟的时间,测试老是不重定向. 因为之前已经有一个 ...

  4. TCHAR和CHAR类型的互转

    http://blog.csdn.net/ahjxly/article/details/8494217 http://blog.csdn.net/b_h_l/article/details/75815 ...

  5. 实现在某一指定位置的div在窗口滚动到指定位置的时候fixed定位

    HTML: <div class="top"> ·····内容 </div> <div class="scroll">< ...

  6. Mysql占用CPU过高如何优化,如何解决

    2017-02-28 15:13 331人阅读 评论(0) 收藏 举报   MySQL占用CPU过高如何优化 一次生产DB服务器的 超负荷运行问题解决: 1.查看生产DB服务器top列表, 执行 to ...

  7. redis 一主二从三哨兵

    总体部署 一主二从三哨兵 ip地址分配分别为 主 127.0.0.1:6379 从 127.0.0.1:6389 从 127.0.0.1:6399 哨兵 127.0.0.1:26379 哨兵 127. ...

  8. Prometheus Node_exporter

    Node Exporter node_exporter 主要用于 *NIX 系统监控, 用 Golang 编写. 功能对照表 默认开启的功能 名称 说明 系统 arp 从 /proc/net/arp ...

  9. ubuntu14.04上java jdk & mvn安装

    这些常用工具的安装步骤还是自己记录下,以后再次用到时就会方便许多. 系统:ubuntu14.04 jdk安装. 1.从官网下载好jdk安装包 jdk-8u111-linux-x64.tar.gz 2. ...

  10. Spark进阶之路-Standalone模式搭建

    Spark进阶之路-Standalone模式搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Spark的集群的准备环境 1>.master节点信息(s101) 2&g ...