我试图找出检查我的(WebView)中的主要活动的URL的最简单方法。这将使用Robotium 4.1框架进行单元测试。所有我想弄清楚我如何与webview进行交互,比如发送活动一个URL加载,所以我可以测试它并确保加载了正确的URL,并检查我的操作栏项目。
任何代码,建议或建议都将受到高度赞赏。
public class ErrorHandling extends
ActivityInstrumentationTestCase2<Webview_Main> {
private Solo solo;
private WebView web;
..
protected void setUp() throws Exception {
super.setUp();
solo = new Solo(getInstrumentation(),getActivity());
}
根据建议更新(目前 - NullPointerException Erorrs)
public void testUrl() {
String URL = solo.getString(com.example.webview.R.string.url);
web = (WebView) getActivity().findViewById(R.id.webview_main); //Added
try {
solo.assertCurrentActivity("Launching Main Activity", Webview_Main.class);
assertTrue(solo.getWebUrl().equals("URL")); }
catch (Error error) {
}
}
public void testWeb() {
try {
web = (WebView) getActivity().findViewById(R.id.webview_main); //Added
solo.getCurrentActivity().runOnUiThread(new Runnable() {
public void run() {
web.loadUrl("http://www.google.com");
}
});
solo.sleep(1000);
} catch (Error error) {
}
}
答案 0 :(得分:3)
首先,致电
web.getSettings();
什么都不给你。它为您提供WebSettings,但您不对该对象执行任何操作。
要在您的网页浏览中断言当前网址,您可以使用:
assertTrue(solo.getWebUrl().equals("your url"));
要在webview中加载指定的url,你必须在另一个线程中运行它(这里我不确定,如果它应该是runOnMainSync或runOnUiThread,但是我尝试了runOnUiThread并且它工作正常),例如:
solo.getCurrentActivity().runOnUiThread(new Runnable() {
public void run() {
web.loadUrl("http://www.OTHER_url_TO_test_AGAINST");
}
});
答案 1 :(得分:1)
检查URL的步骤如下:
1)为特定应用程序创建webview对象
obj =(WebView)getActivity()。findViewById((源包名或apk).R.id。(源webview的ID))
注意:如果你没有编写测试用例的源应用程序的源代码,那么使用层次结构查看器来查找webview的id。
2)添加一些睡眠,以便等待加载网址所花费的时间 的 solo.sleep(时间)强>
3)使用此选项获取应用程序的当前值或状态。 的 obj.getSettings()强>
4)取一个布尔变量并存储值 布尔变量= solo.getWebUrl()。equals(“要测试的网址”);
5) assertTrue(布尔变量) 验证值true或false。