У меня есть тестовый сценарий, который выглядит следующим образом: я запускаю приложение на android с помощью appium, затем мне нужно открыть браузер для аутентификации некоторых вещей, сразу после этого мне нужно go вернуться к android , Как сделать этот процесс? Я думал об использовании многопоточности.
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.net.MalformedURLException;
import java.net.URL;
public class ioSampleTest {
public AndroidDriver<MobileElement> driver;
public WebDriverWait wait;
//Elements
String secondNewJob = "//android.widget.FrameLayout[2]/android.widget.LinearLayout/" +
"android.widget.RelativeLayout/android.widget.ImageView";
@BeforeMethod
public void setup () throws MalformedURLException {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("deviceName", "Galaxy Nexus API 24");
caps.setCapability("udid", "emulator-5554"); //DeviceId from "adb devices" command
caps.setCapability("platformName", "Android");
caps.setCapability("platformVersion", "7.0");
caps.setCapability("skipUnlock","true");
caps.setCapability("appPackage", "com.isinolsun.app");
caps.setCapability("appActivity","com.isinolsun.app.activities.SplashActivity");
caps.setCapability("noReset","false");
driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"),caps);
wait = new WebDriverWait(driver, 10);
}
@Test
public void basicTest () throws InterruptedException {
//Click and pass Splash
wait.until(ExpectedConditions.visibilityOfElementLocated
(By.id("com.isinolsun.app:id/animation_view"))).click();
//Click I am searching a job
wait.until(ExpectedConditions.visibilityOfElementLocated
(By.id("com.isinolsun.app:id/bluecollar_type_button"))).click();
//Notification Allow
if (driver.findElements(By.id("com.android.packageinstaller:id/permission_allow_button")).size()>0) {
driver.findElements(By.id("com.android.packageinstaller:id/permission_allow_button")).get(0).click();
}
WebDriver browserFireFox = new FirefoxDriver();
try {
browserFireFox.get("https://google.com/ncr");
browserFireFox.findElement(By.name("q")).sendKeys("cheese" + Keys.ENTER);
WebElement firstResult = wait.until(presenceOfElementLocated(By.cssSelector("h3>div")));
System.out.println(firstResult.getAttribute("textContent"));
} finally {
browserFireFox.quit();
}
wait.until(ExpectedConditions.visibilityOfElementLocated
(By.xpath(secondNewJob)));
}
@AfterMethod
public void teardown(){
driver.quit();
}
}
Это пример кода в java, я взял код с этих сайтов Tutorial Appium Java и Selenium и создайте пример, чтобы немного легче понять, что я хочу сделать.
Примечание. Код может не работать, это всего лишь пример.