gpt4 book ai didi

android - 在 Android Espresso UI 测试中从 Facebook 注销

转载 作者:行者123 更新时间:2023-12-03 21:22:55 27 4
gpt4 key购买 nike

我有一些使用 Facebook SDK 的自动化测试:
- 在我的应用中注册
- 登录我的应用程序

我运行注册测试,它基本上调用 chrome,然后登录 Facebook 以使用信息在我的应用程序中继续注册过程。

但是当我想在模拟器上运行第二个测试时,登录,我已经在 Chrome 上登录了 Facebook,我想使用另一个帐户进行此测试......

有没有办法在我的测试中注销?

最佳答案

由于这个问题我找到了一种在 UI 测试中清理 chrome 的方法,这应该适用于法语或英语的手机:

private void cleanChrome() {
final UiDevice mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
try {
//Clear chrome data
String urlString = "http://nurburgring.ben-j.fr";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlString));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setPackage("com.android.chrome");
try {
KlaxitApp.getContext().startActivity(intent);
} catch (ActivityNotFoundException ex) {
// Chrome browser presumably not installed so allow user to choose instead
intent.setPackage(null);
KlaxitApp.getContext().startActivity(intent);
}
mDevice.wait(Until.findObject(By.clazz(WebView.class)), 10 * 1000);
//Check if never used
acceptChromeCgus();

UiObject urlField = mDevice.findObject(new UiSelector().className(EditText.class));
urlField.click();
urlField.setText("chrome://history");
mDevice.pressEnter();

Thread.sleep(5000);

UiObject clearBTN = mDevice.findObject(new UiSelector().className(Button.class).descriptionContains("CLEAR"));
if (clearBTN.exists()) {
clearBTN.click();
} else {
clearBTN = mDevice.findObject(new UiSelector().textContains("CLEAR"));
if (clearBTN.exists()) {
clearBTN.click();
} else {
//french phone
clearBTN = mDevice.findObject(new UiSelector().className(Button.class).textContains("EFFACER LES DONNÉES DE NAVIGATION"));
if (clearBTN.exists()) {
clearBTN.click();
}
}
}

//Period required on dev phone but not on CI
UiObject periodBTN = mDevice.findObject(new UiSelector().textContains("Dernière heure"));
if (periodBTN.exists()) {
periodBTN.click();
UiObject allPeriodTV = mDevice.findObject(new UiSelector().textContains("Toutes"));
if (allPeriodTV.exists()) {
allPeriodTV.click();
}
}

Thread.sleep(1000);
clearBTN = mDevice.findObject(new UiSelector().className(Button.class).descriptionContains("CLEAR"));
if (clearBTN.exists()) {
clearBTN.click();
} else {
//french phone
clearBTN = mDevice.findObject(new UiSelector().className(Button.class).textContains("EFFACER LES DONNÉES"));
if (clearBTN.exists()) {
clearBTN.click();
}
}

UiObject clearDataBTN = mDevice.findObject(new UiSelector().className(Button.class).textContains("CLEAR DATA"));
if (clearDataBTN.exists()) {
clearDataBTN.click();
} else {
//french phone
clearDataBTN = mDevice.findObject(new UiSelector().className(Button.class).textContains("EFFACER"));
if (clearDataBTN.exists()) {
clearDataBTN.click();
}
}

//Popup
UiObject okBTN = mDevice.findObject(new UiSelector().className(Button.class).textContains("OK"));
if (okBTN.exists()) {
okBTN.click();
} else {
okBTN = mDevice.findObject(new UiSelector().className(Button.class).textContains("CLEAR"));
if (okBTN.exists()) {
okBTN.click();
}
}

final String connectWith = getResourceString(R.string.Connect_with);
UiObject connectWithTV = mDevice.findObject(new UiSelector().className(TextView.class).text(connectWith));
while (!connectWithTV.exists()) {
Thread.sleep(2000);
Timber.i("PRESS BACK");
mDevice.pressBack();
Thread.sleep(2000);
connectWithTV = mDevice.findObject(new UiSelector().className(TextView.class).text(connectWith));
}
} catch (Exception e) {
e.printStackTrace();
mDevice.pressBack();
}
}

关于android - 在 Android Espresso UI 测试中从 Facebook 注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50367814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com