だから私はここで問題を抱えています。selendroid サーバーを手動で起動すると、テストは正常に実行されます。コードからサーバーを起動すると、失敗します。
コードはサーバーを起動し、エミュレーターを起動し、画面ロックを解除します。その後、「デバイスが見つかりません。これは、デバイスが使用中か、必要な機能に一致するデバイス画面がない場合に発生する可能性があります」というエラーで失敗します。
それでも、サーバーを手動で起動すると、テストは機能します。
package Utilities;
import java.util.concurrent.TimeUnit;
import io.selendroid.SelendroidCapabilities;
import io.selendroid.SelendroidConfiguration;
import io.selendroid.SelendroidDriver;
import io.selendroid.SelendroidLauncher;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
public class Selendroid {
public static SelendroidLauncher selendroidServer;
public static WebDriver driver;
public static String baseUrl;
public static WebDriverWait wait;
@BeforeSuite
public void startSelendroidServer() throws Exception {
if (selendroidServer != null) {
selendroidServer.stopSelendroid();
}
SelendroidConfiguration config = new SelendroidConfiguration();
config.setSessionTimeoutSeconds(60000);
selendroidServer = new SelendroidLauncher(config);
selendroidServer.launchSelendroid();
baseUrl = "http://kask6iktundubkorras.sayat.me/";
DesiredCapabilities caps = SelendroidCapabilities.android();
driver = new SelendroidDriver(caps);
driver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS);
wait = new WebDriverWait(driver, 60, 100);
}
@AfterSuite
public void stopSelendroidServer() {
if (driver != null) {
driver.quit();
}
if (selendroidServer != null) {
selendroidServer.stopSelendroid();
}
}
}