gpt4 book ai didi

android - 如何在 Android 中使用 Appium 自动化 facebook 登录测试

转载 作者:搜寻专家 更新时间:2023-11-01 09:47:12 24 4
gpt4 key购买 nike

大家好,我是 Appium 测试的新手。我正在我的应用程序中测试 facebook 登录,但问题是我无法在 UIAutomatorViewer 中选择 id,因为它会打开 facebook webview。所以我尝试将上下文从 NATIVE 切换到 WEB,但仍然无法正常工作。

这是代码

    public void fbLogin() throws InterruptedException {
System.out.println("IN FB_LOGIN TEST ");
this.getDriver().context("NATIVE_APP");// set the context to Native
_fb_sign_in_button.click(); // click on the fb button in native app
Thread.sleep(10000); // sleep
Set<String> contextNames = getDriver().getContextHandles();
for (String contextName : contextNames) {
System.out.println(contextName);
if (contextName.contains("WEBVIEW")) {
getDriver().context(contextName);
}
}
this.getDriver().findElementByXPath("//android.widget.EditText[@index='0']").sendKeys("abc@gmail.com");

有人能告诉我哪里出了问题吗?

最佳答案

点击原生的 Facebook 登录按钮:

wd.findElement(By.id("com.hathy.fblogin:id/login_button")).click();

切换到 webview 上下文:

//here we getting the list of context
Set<String> contextHandles = wd.getContextHandles();
for (String s : contextHandles) {
System.out.println("Context : " + s);
//if context contains webview then set the webview context
if (s.contains("WEBVIEW")) {
wd.context(s);
}
}

在 webview 中执行 Facebook 登录流程:

wd.findElement(By.xpath()).sendKeys("//input[@name='email']""<your_emailid>");
wd"//input[@name='pass']"".findElement(By.xpath()).sendKeys(<your_password>"); // test password
wd.findElement(By.xpath("//button[@name='login']")).click();
WebDriverWait driverWait = new WebDriverWait(wd, 10);
driverWait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@name='__CONFIRM__']"))); // waiting for the element to be clickable
System.out.println(wd.getPageSource()); // get the page source
wd.findElement(By.pathx("//button[@name='__CONFIRM__']")).click(); // this step login process is done.

回到 native View :

// here i need to get the context again
Set<String> contextHandles2 = wd.getContextHandles();
for (String s : contextHandles2) {
System.out.println("Context : " + s);
if (s.contains("NATIVE_APP")) {
wd.context(s);
}
}

Youtube 视频:https://www.youtube.com/watch?v=AcBzbhQgDis

关于android - 如何在 Android 中使用 Appium 自动化 facebook 登录测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37565491/

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