博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
robotium之webview元素处理
阅读量:7095 次
发布时间:2019-06-28

本文共 2312 字,大约阅读时间需要 7 分钟。

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

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

如何定位webview元素?

解决方案:

step:

1、手机连接上电脑,并打开App,打开需要定位的Webview的页面

2、电脑上打开Chrome,地址栏输入 chrome://inspect
3、点击devices标签,此时你会看到你设备上对应的App的包名

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

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); }}

 

转载地址:http://faxql.baihongyu.com/

你可能感兴趣的文章