Возвращаемое значение не может быть преобразовано в WebElement

avatar
jayn
22 мая 2018 в 20:33
8428
5
2

Я использую Appium для тестирования автоматизации iOS и получаю эту ошибку

Возвращаемое значение не может быть преобразовано в WebElement //*[@text='Результаты поиска']

Версия клиента Appium Java: 6.0.0-BETA5

Понижение версии Java-клиента для меня не вариант, так как я использую некоторые методы из последней бета-версии.

try {
        MobileElement titleView = navigationBar.findElement(By.xpath("//*[@text='" + title + "']"));
        return titleView.isDisplayed();
    }

ОБНОВЛЕНИЕ:

Я добавил селен в свою градацию следующим образом:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
implementation 'io.appium:java-client:6.0.0-BETA5'
implementation 'org.seleniumhq.selenium:selenium-server:3.9.1'

implementation "com.google.code.gson:gson:2.8.2"
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'

compileOnly 'org.projectlombok:lombok:1.16.20'
annotationProcessor 'org.projectlombok:lombok:1.16.20'

testImplementation 'junit:junit:4.12'
}

Но при выполнении тестов я все еще получаю сообщение об ошибке. Версия сборки здесь 3.11.0. Это Селен? Какой здесь правильный подход?

    org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: //*[@text='Search Results']
Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:26:55.152Z'
System info: host: 'USGPSNYCM212943.local', ip: 'fe80:0:0:0:462:ed8d:f2e4:f85d%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.4', java.version: '1.8.0_152-release'
Driver info: driver.version: unknown
Источник

Ответы (5)

avatar
Anuj Bansal
7 декабря 2019 в 10:17
0

Я использовал

Appium-windows-1.13.0
java-client-5.0.0-BETA6

Я обновил его до

Appium-windows-1.15.1
java-client-6.0.0-BETA4

и это сработало

avatar
Saif Siddiqui
29 июля 2019 в 09:54
0

В желаемых возможностях добавьте следующие дополнительные возможности, тогда все должно работать:

capability.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "60");
avatar
RJT
27 января 2019 в 01:38
0

Если кто-то видит это сейчас, значит, поиск WebElement зависит от того, какой драйвер вы используете.

Если используется AndroidDriver, укажите общий тип как Драйвер AndroidDriver; драйвер = новый AndroidDriver(новый URL("http://127.0.0.1:4723/wd/hub"), возможности);

Если используется appiumDriver, общий тип указывается как Драйвер AppiumDriver; драйвер = новый AndroidDriver(новый URL("http://127.0.0.1:4723/wd/hub"), возможности);

надеюсь, это поможет!

avatar
AMOD THAKUR
20 августа 2018 в 15:04
0

Я боролся с этой проблемой пару дней. Я пробовал все решения, упомянутые на различных форумах, такие как обновление или понижение версии appium и т. Д. Наконец, проблема была решена путем добавления простого неявного ожидания в 5 секунд для объекта драйвера. Попробуйте, если вы столкнулись с этой проблемой.

avatar
Suraj Jogdand
23 мая 2018 в 07:52
6

Здравствуйте, используйте следующие зависимости:

  <!-- https://mvnrepository.com/artifact/io.appium/java-client -->
        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>6.0.0-BETA5</version>
        </dependency>
 <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-server</artifactId>
            <version>3.9.1</version>
        </dependency> 

Это должно решить вашу проблему, даже я столкнулся с похожей проблемой, когда использовал другую версию сервера Selenium.

jayn
23 мая 2018 в 16:14
0

Спасибо, как мне это сделать в Gradle? я новичок в этом

jayn
23 мая 2018 в 16:36
0

Обновил мой вопрос выше, пожалуйста, посмотрите, что я делаю неправильно.

Chinya
2 августа 2018 в 12:09
0

Привет, @Suraj, я также столкнулся с той же проблемой, которую использовал для вышеупомянутых зависимостей: <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.9. 1</version> </dependency> Но получаю ту же ошибку.