org.openqa.selenium.WebDriverException: возвращаемое значение не может быть преобразовано в WebElement с Appium и iOS - PullRequest
0 голосов
/ 22 января 2019

У меня проблема: возвращаемое значение не может быть преобразовано в WebElement. Я использую BrowserStack в качестве облачной платформы.

Код моего приложения:

package root;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.ios.IOSDriver;

public class test123 {

    public static void main(String[] args) throws MalformedURLException, InterruptedException
    {
        String userName="brenda467";
        String accessKey="adfadfadfadf";
        DesiredCapabilities caps = new DesiredCapabilities();      

        caps.setCapability("browserstack.user", userName);
        caps.setCapability("browserstack.key", accessKey);


        caps.setCapability("platform","iOS");             
        //caps.setCapability("platformName","iOS");           

        caps.setCapability("deviceName","iPhone 7");       
        caps.setCapability("os_version","10.3");    
        caps.setCapability("app","bs://asfasdfasfasdfasfa");                    
        caps.setCapability("browserstack.debug",true);
        caps.setCapability("automationName","XCUITest");
        //caps.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "60");
        caps.setCapability("noReset", true);        


        AppiumDriver driver = new IOSDriver(new URL("http://hub.browserstack.com/wd/hub/"), caps);
        Thread.sleep(900);
        driver.findElement(By.xpath("//XCUIElementTypeOther[@name='LOG IN']")).click();

    }

}

Выход на консоль:

Исключение в потоке "main" org.openqa.selenium.WebDriverException: возвращаемое значение не может быть преобразовано в WebElement: {ELEMENT = 4EE2A34-EE35-4F14-8EED-A33EEEEEEE55} Информация о сборке: версия: '3.6.0', редакция: '6fbf3ec767', время: '2017-09-27T15: 28: 36.4Z' Системная информация: хост: 'V00XYZ', ip: '100.00.00.100', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10 .0 ', java.version:' 1.8.0_191 ' Информация о драйвере: driver.version: IOSDriver в org.openqa.selenium.remote.RemoteWebDriver.findElement (RemoteWebDriver.java:375) в io.appium.java_client.DefaultGenericMobileDriver.findElement (DefaultGenericMobileDriver.java:62) в io.appium.java_client.AppiumDriver.findElement (AppiumDriver.java:1) в io.appium.java_client.ios.IOSDriver.findElement (IOSDriver.java:1) в org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath (RemoteWebDriver.java:473) в io.appium.java_client.DefaultGenericMobileDriver.findElementByXPath (DefaultGenericMobileDriver.java:140) в io.appium.java_client.AppiumDriver.findElementByXPath (AppiumDriver.java:1) в io.appium.java_client.ios.IOSDriver.findElementByXPath (IOSDriver.java:1) в org.openqa.selenium.By $ ByXPath.findElement (By.java:361) в org.openqa.selenium.remote.RemoteWebDriver.findElement (RemoteWebDriver.java:360) в io.appium.java_client.DefaultGenericMobileDriver.findElement (DefaultGenericMobileDriver.java:58) в io.appium.java_client.AppiumDriver.findElement (AppiumDriver.java:1) в io.appium.java_client.ios.IOSDriver.findElement (IOSDriver.java:1) на root.test123.main (test123.java:42) Причина: java.lang.ClassCastException: java.util.HashMap не может быть приведен к org.openqa.selenium.WebElement в org.openqa.selenium.remote.RemoteWebDriver.findElement (RemoteWebDriver.java:373) ... еще 13 Подобрал _JAVA_OPTIONS: -Xmx512M

Мой пом. xml:

<dependency>
  <groupId>io.appium</groupId>
  <artifactId>java-client</artifactId>
  <version>7.0.0</version>
</dependency>

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-java</artifactId>
  <version>3.141.59</version>
</dependency>

Примечание. Я уже испробовал множество онлайн-решений ... наряду с приведенным ниже. https://discuss.appium.io/t/org-openqa-selenium-webdriverexception-returned-value-cannot-be-converted-to-webelement/18608

1 Ответ

0 голосов
/ 22 января 2019

pom.xml содержит Selenium v3.141.59 зависимость следующим образом:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>

Но согласно сообщениям журнала:

Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T15:28:36.4Z' System info: host: 'V00XYZ', ip: '100.00.00.100', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_191' 
Driver info: driver.version: IOSDriver 

, что эффективно указывает Selenium v3.6.0 используется, и поэтому вы видите ошибку как:

org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement

Решение

  • Очистите ваш Project Workspace через IDE и Перестройка вашего проекта только с необходимыми зависимостями.
  • Выполнение @Test.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...