robotium之webview元素处理
今天写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); } }
优秀不够,你是否无可替代
软件测试交流QQ群:721256703,期待你的加入!!
欢迎关注我的微信公众号:软件测试君

分类:
Robotium
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库