我想从游戏市场测试应用程序。我在尝试使用
时遇到问题solo.clickOnView(solo.getView(cn.wps.moffice_eng.R.id.writer_edittoolbar_saveBtn));
cn - cn无法解析为变量
我该如何解决这个问题呢?据我所知,robotium不能使用R.id,因为我没有测试应用程序的R.id文件?
我的代码
package com.example.android.apis.test;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ListView;
import com.jayway.android.robotium.solo.Solo;
@SuppressWarnings("unchecked")
public class Test extends ActivityInstrumentationTestCase2 {
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "cn.wps.moffice.documentmanager.PreStartActivity";
private static Class<?> launcherActivityClass;
static{
try {
launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@SuppressWarnings("unchecked")
public Test() throws ClassNotFoundException {
super(launcherActivityClass);
}
private Solo solo;
@Override
protected void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
public void testSimple() {
solo.sleep(2000);
solo.clickOnButton(1);
solo.sleep(2000);
solo.clickOnImage(6);
solo.sleep(2000);
solo.clickInList(0);
solo.sleep(5000);
solo.sendKey(KeyEvent.KEYCODE_P);
solo.sendKey(KeyEvent.KEYCODE_R);
solo.sendKey(KeyEvent.KEYCODE_O);
solo.sendKey(Solo.ENTER);
solo.sleep(2000);
solo.clickOnView(solo.getView(cn.wps.moffice_eng.R.id.writer_edittoolbar_saveBtn));
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
}
和清单
<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.example.android.apis.test">
<uses-sdk android:minSdkVersion="13"/>
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="cn.wps.moffice_eng"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name">
<uses-library android:name="android.test.runner"/>
</application>
</manifest>
我的解决方案:我找到了解决方案 - 我反编译apk文件结尾拉R.id文件到robotium项目 - 这是我提问的关键时刻
答案 0 :(得分:2)
正如@Renas建议的那样,getView(String id)
就是您所需要的。
在 robotium 5.0.1 中,您应该只使用 id字符串,而不是整个名称。它应该是这样的:
solo.clickOnView(solo.getView("resourceId"));
答案 1 :(得分:0)
使用 robotium 4.2 中引入的getView(String id)
。它应该是这样的:
solo.clickOnView(solo.getView("cn.wps.moffice_eng.R.id.writer_edittoolbar_saveBtn"));
答案 2 :(得分:0)
第一步是重新签名你要测试的apk。
然后我使用如下脚本:
View view = solo.getView(com.test.app.R.id.resourceId);
solo.clickOnView(view);