Ошибка: не могу установить io.appium.java_client.MobileElement поле брошено в рамки - PullRequest
0 голосов
/ 02 июля 2018

Я использую фабрику страниц для моей платформы appium. Проблема возникает, когда я пытаюсь запустить testng5.xml, где я хочу запустить 2 класса один за другим.

Я получаю сообщение об ошибке типа " невозможно установить поле io.appium.java_client.MobileElement ".

Я получаю эту ошибку на уровне моего конструктора.

public Homepage(WebDriver driver) {
    super(driver);
    PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}

Не уверен, в чем проблема testng5.xml. Во-первых, класс работает нормально, но возникают проблемы при запуске второго класса.

testng5.xml:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Regression Suit2">
    <test name="Sanity Tests">
        <parameter name="device" value="Nexus4" />
        <parameter name="port" value="4723" />
        <classes>
            <class name="au.com.intelematics.mobileautomation.settings.SettingsPageTest" />
            <class name="au.com.intelematics.mobileautomation.destinationdownload.DestinationDownloadPageTest" />
        </classes>
    </test>
</suite>
<!-- Suite -->

Ответы [ 3 ]

0 голосов
/ 11 июля 2018

Спасибо всем, я решил эту проблему, поставив правильный жизненный цикл для каждого теста. Ранее я инициализировал драйвер (ios или android) под @BeforeClass. Я изменил это на @BeforeMethod и упомянул @AfterMethod для действия выхода из системы (где требуется) и driver.quit (); Теперь драйвер настраивается перед запуском каждого метода тестирования. Также преобразовал мой WebDriver в AppiumDriver для инициализации драйвера.

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

Эта проблема возникает, когда вы передаете нулевое значение в PageFactory. Например

AppiumDriver<MobileElement> driver=null;
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
// this will throw **can not set io.appium.java_client.MobileElement field**

Решение состоит в том, чтобы передать не нулевое значение в AppiumFieldDecorator.

Убедитесь, что ваш драйвер не равен нулю при вызове PageFactory

0 голосов
/ 03 июля 2018

Вместо использования чистого WebDriver, попробуйте использовать AppiumDriver <MobileElement>. Или, более конкретно, если вы работаете на устройстве Android, используйте AndroidDriver <MobileElement> или, если на устройстве IOS, используйте IOSDriver <MobileElement>. Это должно решить вашу проблему.

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