在我的主要活动中,我有initUi函数,它将触发对webviewActivity的意图,在webviewActivity中,有一个FragWebView,其中加载了url。
以下是来自FragWebView的示例代码:
WebView webView = (WebView) layout.findViewById(R.id.web_view);
String url = getArguments().getString(Extras.URL, null);
if(url != null){
webView.clearCache(true);
webView.clearHistory();
webView.getSettings().setJavaScriptEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
webView.loadUrl(url);
webView.setVisibility(View.VISIBLE);
} else {
webView.setVisibility(View.GONE);
}
我从我的主要活动中传递打开webview的意图是:
Intent intent = new Intent(getContext(), ActivityWebView.class);
intent.putExtra(Extras.URL, "https://www.racq.com.au/register?device=mobile");
startActivity(intent);
bottomToTopAnimation();
@RunWith(AndroidJUnit4.class)
public class ActivityRegistrationTest {
@Rule
public ActivityTestRule<ActivityWebView> mActivityRule =
new ActivityTestRule<ActivityWebView>(ActivityWebView.class,
false, false) {
@Override
protected void afterActivityLaunched() {
onWebView().forceJavascriptEnabled();
}
};
@Test
public void testSingUpWebPage()throws Exception
{
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// check WELCOME text is present
onWebView().withElement(findElement(Locator.ID, "register"))
.check(webMatches(getText(), containsString("Register")));
//Check UI elements text boxes and buttons are present on the page
onWebView().check(webContent(hasElementWithId("l")));
onWebView().check(webContent(hasElementWithId("phracq_body_0_phracq_contentcontainer_0_ucFirstName_txt")));
onWebView().check(webContent(hasElementWithId("phracq_body_0_phracq_contentcontainer_0_ucLastName_txt")));
onWebView().check(webContent(hasElementWithId("date_of_birth")));
onWebView().check(webContent(hasElementWithId("phracq_body_0_phracq_contentcontainer_0_ucPostCode_txt")));
//enter values
onWebView().withElement(findElement(Locator.ID,"phracq_body_0_phracq_contentcontainer_0_ucFirstName_txt")).perform(webKeys("siddharth"));
}
}
// Espreso Dependencies
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation 'com.android.support.test:rules:1.0.2'
androidTestImplementation("com.android.support.test.espresso:espresso-contrib:2.2.2") {
exclude group: 'com.android.support', module: 'appcompat'
exclude group: 'com.android.support', module: 'support-v4'
exclude group: 'com.android.support', module: 'support-v7'
exclude group: 'com.android.support', module: 'design'
exclude module: 'support-annotations'
exclude module: 'recyclerview-v7'
}
androidTestImplementation('com.android.support.test.espresso:espresso-web:2.2') {
exclude group: 'com.android.support', module: 'support-annotations'
}
请让我知道如何解决这个问题。
问候
您可以使用“uiDevice”来实现这一点。
只需添加此受抚养人:
androidTestImplementation'com.android.support.test.uiAutomator:uiAutomator-v18:2.1.3'
@RunWith(AndroidJUnit4.class)
public class ActivityRegistrationTest {
@Rule
public ActivityTestRule<MainActivity> mActivityRule =
new ActivityTestRule<MainActivity>(MainActivity.class,
false, false);
@Before
public void setUp() {
mActivityRule.launchActivity(new Intent());
}
@Test
public void testSingUpWebPage()throws Exception
{
final UiDevice mDevice =
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
final int timeOut = 1000 * 60;
mDevice.wait(Until.findObject(By.clazz(WebView.class)), timeOut);
try {
UiObject membershipCardInput = mDevice.findObject(new UiSelector()
.instance(0)
.className(EditText.class));
membershipCardInput.waitForExists(timeOut);
membershipCardInput.setText("123456789");
} catch (Exception e) {
e.printStackTrace();
} } }
当我试图编写一个与listview项交互的代码时,我得到了一个OmbyuousViewMatcherException异常。场景如下。 我有一个包含两个视图的listview 文本视图 按钮查看 我在列表中有将近250行。所有按钮都有文本“预订”或“取消”。他们在一个洗牌的顺序。我想直接点击列表中的第一个“预订它”按钮。我已经尝试了很多方案,但仍然无法找到解决方案。拜托谁帮帮我。 下面是我现在的代
我试着用“浓缩咖啡”写简单的测试 但我有个错误: 我正在尝试不同的框架进行测试,对我来说是最好的,但如果有人能帮助修复这个错误,我将非常感激
本文向大家介绍Android 设置意式浓缩咖啡,包括了Android 设置意式浓缩咖啡的使用技巧和注意事项,需要的朋友参考一下 示例 在build.gradle您的Android应用模块的文件中,添加下一个依赖项: 在文件中AndroidJUnitRunner为testInstrumentationRunner参数指定build.gradle。 此外,添加此依赖项以提供意图模拟支持 并将其添加为w
在Espresso中,应用程序启动,测试以以下代码开始:onView(withId(r.id.choosebooktitle)).perform(click()); 这会崩溃,因为显示器仍然显示启动屏幕,而chooseBookTitle只有在之后才可见。如何防止谷歌-浓缩咖啡会在它出现之前点击键? (我不想插入等待循环,而是保持事件驱动。在更糟糕的情况下,我回到Robotium)
null 动画/转换被禁用,但这不会阻止CircularProgressLayout动画化。 我尝试,但即使这样,在第一次单击和第二次单击之间也要等待2秒。 我还试图滥用作为黑客来确认退出应用程序。这确实有效,但这是一个黑客。我只想让浓缩咖啡点击两次。 有什么建议如何使浓缩咖啡点击两次而不等待动画?
我在做Espresso测试时遇到了一个问题,我知道Espresso不能处理动画,所以我在下面做了。-禁用我的测试设备窗口动画,过渡动画和动画师持续时间比例都设置为关闭(这不起作用)-然后我试图在我的代码中添加一个标志(如。espresso_testing=true。如果为true,我的代码将跳过调用所有startAnimation()函数调用。--->这很管用。然而,在编写espresso测试用例