Как найти элементы iOS с клиентом Appium Java? - PullRequest
0 голосов
/ 15 мая 2019

Невозможно найти нужный элемент, или я пытаюсь принудительно вернуть возвращаемый элемент в неправильный тип. Ищите правильный синтаксис, чтобы найти кнопку, чтобы нажать на нее. Я работаю со сборкой симулятора iOS, Appium, выполняю тестирование с клиентом Java.

AppTest.Java

  @Test (enabled=true) public void myFirstTest() throws InterruptedException {
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

**IOSElement button = driver.findElement(MobileBy.AccessibilityId("UIA_upsellPage_third_button"));**

выход

org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: {element-6066-11e4-a52e-4f735466cecf=28000000-0000-0000-61D4-000000000000, ELEMENT=28000000-0000-0000-61D4-000000000000}
Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T15:28:36.4Z'
System info: host: 'C02R91M5G8WLMBP', ip: '2601:645:8002:1391:0:0:0:5d42%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.6', java.version: '12.0.1'
Driver info: driver.version: IOSDriver
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:378)
    at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:62)
    at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1)
    at io.appium.java_client.ios.IOSDriver.findElement(IOSDriver.java:1)
    at io.appium.java_client.FindsByAccessibilityId.findElementByAccessibilityId(FindsByAccessibilityId.java:31)
    at io.appium.java_client.MobileBy$ByAccessibilityId.findElement(MobileBy.java:288)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:363)
    at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:58)
    at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1)
    at io.appium.java_client.ios.IOSDriver.findElement(IOSDriver.java:1)
    at com.media.automation.iphone_automation_1.AppTest.myFirstTest(AppTest.java:70)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
    at org.testng.TestRunner.privateRun(TestRunner.java:648)
    at org.testng.TestRunner.run(TestRunner.java:505)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
    at org.testng.SuiteRunner.run(SuiteRunner.java:364)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
    at org.testng.TestNG.runSuites(TestNG.java:1049)
    at org.testng.TestNG.run(TestNG.java:1017)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
Caused by: java.lang.ClassCastException: class java.util.HashMap cannot be cast to class org.openqa.selenium.WebElement (java.util.HashMap is in module java.base of loader 'bootstrap'; org.openqa.selenium.WebElement is in unnamed module of loader 'app')
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:376)
    ... 35 more

Ожидаемый результат: Должен возвращать элемент, который можно нажать методом, имитирующим нажатие кнопки.

Фактический результат: org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: {element-6066-11e4-a52e-4f735466cecf=28000000-0000-0000-61D4-000000000000, ELEMENT=28000000-0000-0000-61D4-000000000000}

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Скорее всего, ваш клиент устарел .

Убедитесь, что вы используете последнюю стабильную библиотеку appium-java-client, которая является 7.0.0

И не включают явную зависимость селена-java , она уже поступает в Appium.

И еще раз проверьте версию сервера Appium, 1.13.0 был недавно выпущен .

0 голосов
/ 30 мая 2019

Вы можете интегрировать симулятор с браузером Safari для веб-приложения или использовать Appium Studio для собственного приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...