Selendroid: Элемент не найден и ссылка на идентификатор элемента, который я не прошел
Привет я пользуюсь selendroid
чтобы проверить мое приложение, но я получаю сообщение об ошибке в том, что идентификатор элемента не найден, и идентификатор, отображаемый в ошибке, не передается мной нигде в моем коде.
Ниже приведен след TestNG log
:
org.openqa.selenium.StaleElementReferenceException: элемент с идентификатором '749f7f36-cf23-cf8a-3ba4-089302016ab6' не найден. Продолжительность или время ожидания команды: 23 миллисекунды. Чтобы получить документацию по этой ошибке, посетите страницу: http://seleniumhq.org/exceptions/stale_element_reference.html Информация о сборке: версия: "неизвестно", редакция: "неизвестно", время: "неизвестно" Система информация: хост: "admin-PC", ip: "172.25.14.100", os.name: "Windows 7", os.arch: "x86", os.version: "6.1", java.version: "1.7.0_21'ID сеанса: 75f030b7-cad7-9f00-452d-b29017e502cb Информация о драйвере: io.selendroid.SelendroidDriver Возможности [{automaName=selendroid, платформа = ЛЮБОЙ, имя_платформы =android, browserName=selendroid, эмулятор = ложь, aut=in.my:2.3}] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance(неизвестный источник) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance.NewInst.fl. Неизвестный источник) в java (Неизвестный источник) в org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204) в org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156) в org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599) в org.openqa.selenium.remote.RemoteWebElement.execute.jpg (в удаленном филиале): удаленный пользовательский интерфейс ".invoke (Неизвестный источник) по адресу sun.reflect.DelegatingMethodAccessorImpl.invoke(Неизвестный источник) по адресу java.lang.reflect.Method.invoke(Неизвестный источник) по адресу org.testng.internal.MethodInvocationHelper.invokeMethod: MethodInvocation (MethodInvocation org.testng.internal.Invoker.invokeMethod(Invoker.java:648) в org.testng.internal.Invoker.invokeTestMethod(Invoker.java:834) в org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1142) в org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:124) в org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108) в org.testng.TestRunner.privateRun(TestRunner.java:771) в org.testng.TestRunner.run(TestRunner.java:621) в org.testng.run SuiteRunner.java:357) в org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352) в org.testng.SuiteRunner.privateRun(SuiteRunner.java:310) в org.testng.SuiteRunner.run(SuiteRunner.java)) в org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) в org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) в org.testng.TestNG.runSuitesSequentially(TestNG.jtest).TestNG.runSuitesLocally(TestNG.java:1101) в org.testng.TestNG.run(TestNG.java:1009) в org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111) в org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204) в org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175) Причина: io.selendroid.server.common.exceptions.StaleElementReferenceException: элемент с идентификатором 749f cf 749f -cf8a-3ba4-0893 02016ab6 'не найдено.
Я добавляю код для драйвера, и тестовое исключение происходит в recharge_btn
Я бы
private SelendroidDriver driver;
@BeforeClass
public void setUp() throws Exception {
SelendroidConfiguration config = new SelendroidConfiguration();
config.addSupportedApp("myapp.apk");
// SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
// selendroidServer.launchSelendroid();
capa = new SelendroidCapabilities("in.myapp:2.3");
// capa.setAut("io.selendroid.testapp:0.15.0");
// capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19);
capa.setEmulator(false);
driver = new SelendroidDriver(capa);
}
@Test
public void bRechargePrepaid() throws Exception {
// driver = new SelendroidDriver(capa);
System.out.println("Starting Prepaid Recharge");
driver.get(PREPAID_RECHARGE_ACTIVITY);
// WebElement rechargeList = driver.findElement(By.linkText("Prepaid"));
// rechargeList.click();
// File file = new File("D:/prepaidRecharge.txt");
// fr = new FileReader(file);
// br = new BufferedReader(fr);
// String fileLine = "";
// try {
// while ((fileLine = br.readLine()) != null) {
WebElement element = driver.findElement(By
.id("mobile_number_edit"));
element.sendKeys("9780325188");
element = driver.findElement(By.id("amount_edit"));
element.clear();
element.sendKeys("100");
element = driver.findElement(By.id("edt_operator"));
element.click();
element = driver
.findElement(By.linkText("VODAFONE"));
element.click();
Thread.sleep(2000);
element = driver.findElement(By.id("recharge_btn"));
element.click();
element = driver.findElement(By.id("button1"));
element.click();
Thread.sleep(15000);
driver.navigate().back();
// }
// } finally {
// br.close();
// fr.close();
// }
Thread.sleep(10000);
}