Не могу понять ошибки в моем первом тесте Appium ruby - PullRequest
0 голосов
/ 08 июня 2018
require 'rubygems'
require 'appium_lib'

desired_caps = {
    caps: {
        platformName:  'iOS',
        platformVersion: '11.4',
        deviceName:    'iPhone 7',
        app:           Path,
        automationName: 'XCUITest',
    },
    appium_lib: {
        sauce_username:   nil,
        sauce_access_key: nil,
        wait: 60
    }
}

driver = Appium::Driver.new(desired_caps)
Appium.promote_appium_methods AppiumWorld
driver.start_driver

#login test class

    #find the email textfield
    def email(driver)
        return driver.find_element(:name, "Email")
    end

    #find the password textfield
    def password(driver)
        return driver.find_element(:name, "Password")
    end

    #find the login button
    def loginButton(driver)
        return driver.find_element(:name, "Login")
    end

    #find Forgot Password button
    def forgotPasswordButton(driver)
        return driver.find_element(:name, "Forgot Password?")
    end

    #find Don't have an account button
    def forgotAccountButton(driver)
        return driver.find_element(:name, "Don't have an account?")
    end

$driver.driver_quit

Я не включил путь, но он правильный.Я установил все необходимые гемы, единственная зависимость от ruby ​​для запуска appium ruby ​​test - это appium_lib, который я установил.Я просто хочу убедиться, что у меня есть 2 обязательных текстовых поля для электронной почты и пароля и 3 кнопки, которые включают в себя логин, забытый пароль и кнопку «Нет учетной записи».Вот ошибка, которую я получаю, я не могу найти решение этой ошибки:

Traceback (most recent call last):
    2: from loginScreenTest.rb:2:in `<main>'
    1: from /usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/Cellar/ruby/2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- appium_lib (LoadError

)

1 Ответ

0 голосов
/ 12 июня 2018

Целью этого теста было проверить, что все элементы пользовательского интерфейса присутствовали на контроллере представления.Чтобы найти эти «элементы», на эти элементы нужно ссылаться, используя имя, идентификатор или даже xpath (это не рекомендуется, потому что оно создает нестабильные тесты, основанные на том, что говорит симулятор Appium, а не на моих словах).В частности, проблема с моим кодом заключалась в том, что сначала мне нужно было установить гем, поэтому я запустил этот код, но в конечном итоге сработал следующий код.

require 'rubygems'
require 'appium_lib'

desired_caps = {
    caps: {
        platformName:  'iOS',
        platformVersion: '11.4',
        deviceName:    'iPhone 7',
        app:           PATH,
        automationName: 'XCUITest',
    },
    appium_lib: {
        sauce_username:   nil,
        sauce_access_key: nil,
        wait: 60
    }
}

@driver = Appium::Driver.new(desired_caps,)

@driver.start_driver

#login test class

    #find the email textfield
    def email(driver)
        if driver.find_element(:xpath, '//XCUIElementTypeApplication[@name="DataSiteOne"]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeTextField')
            return driver.find_element(:xpath, '//XCUIElementTypeApplication[@name="DataSiteOne"]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeTextField')
        end
    end

    #find the password textfield
    def password(driver)
        if driver.find_element(:xpath, '//XCUIElementTypeApplication[@name="DataSiteOne"]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeSecureTextField')
            return driver.find_element(:xpath, '//XCUIElementTypeApplication[@name="DataSiteOne"]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeSecureTextField')
        end
    end

    #find the login button
    def loginButton(driver)
       if driver.find_element(:name, "Login")
           return driver.find_element(:name, "Login")
        end
    end

    #find Forgot Password button
    def forgotPasswordButton(driver)
        if driver.find_element(:name, "Forgot your password?")
            return driver.find_element(:name, "Forgot your password?")
        end
    end

    #find Don't have an account button
    def forgotAccountButton(driver)
        if driver.find_element(:name, "Don't have an account?")
            return driver.find_element(:name, "Don't have an account?")
        end
    end

    #remember me button
    def rememberMeButton(driver)
        if driver.find_element(:name, "Remember me")
            return driver.find_element(:name, "Remember me")
        end
    end

    #toggle
    def toggle(driver)
        if driver.find_element(:xpath, '//XCUIElementTypeApplication[@name="DataSiteOne"]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther[1]/XCUIElementTypeSwitch')
            return driver.find_element(:xpath, '//XCUIElementTypeApplication[@name="DataSiteOne"]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther[1]/XCUIElementTypeSwitch')
        end
    end


    email(@driver)
    password(@driver)
    loginButton(@driver)
    forgotPasswordButton(@driver)
    forgotAccountButton(@driver)
    rememberMeButton(@driver)
    toggle(@driver)

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