Как мы можем добиться автоматизации IOS с одним и тем же файлом функций, имеющим разные объекты страницы, определение шага для Android / IOS - PullRequest
0 голосов
/ 31 мая 2019

Я выполнил Android Automation с файлом объектов, объектами страницы, определением шага. Теперь мне нужно запустить IOS Automation, но я думаю использовать тот же файл функций Android, что и для IOS / Android одинакова.

Я сделаю Объекты Страницы, Определения Шагов разными для среды.

Я могу добиться того же, сделав некоторые изменения в файле функций. Но после внесения изменений строки файла функций становятся длиннее. Мне нужно иметь такой же набор файлов с любыми изменениями в IOS Automation.

Ниже приведен пример файла объектов и объектов страницы. Пожалуйста, помогите мне использовать тот же файл функций для ios, а также для автоматизации andriod

Файл функции:

Background: 
Given I relaunch the app
And I wait for 20s for element "logInButton" to exist on screen
When I Login to App with username "<username>" and password "<password>" into Property "<property>" 
Then I visit the Landing screen
When I click "ViewGroup:Dashboards"
And I wait for 160s for element "TestView:ABDCDE" to exist on screen
When I click "ViewGroup:Dashboards"
Then I visit the Dashboards screen
And I wait for 160s for element "ViewGroup:Dashboards" to exist on screen

@id=ABCDE-445
Scenario Outline: Dashboard Elements Validation
Then I expect the following elements to be visible
|Fields|
|ViewGroup:Dashboards|
|ViewGroup1:The Daily|
|ViewGroup1:XYZ|
|homeBtn:AppMenuGoHome|

ФАЙЛ ОБЪЕКТА IOS PAGE

module.exports = {
  elements: Object.assign({
    ViewGroup: `//XCUIElementTypeOther[@name="$variable"]`,
    TestView: `//XCUIElementTypeButton[@name='$variable']`,
    ViewGroup1: `//XCUIElementTypeButton[@name="loginButton"]`,
    homeBtn: `//XCUIElementTypeButton[@name="homeBtn"]`,
  }),
  staticElements: Object.assign({
    usernameLabel: `//XCUIElementTypeOther[@name="Text userNameTextInput"]`,
    passwordLabel: `//XCUIElementTypeOther[@name="Text passwordTextInput"]`,
  }),
}

Файл объекта страницы Android:

module.exports = {
  elements: Object.assign({
    TestInput: `//android.widget.EditText[@content-desc='$variable']`,
    TestView: `//android.widget.TextView[@text='$variable']`,
    TestViewContains: `//android.widget.TextView[contains(@text,'$variable')]`,
    ViewGroup: `//android.widget.ViewGroup[@content-desc='$variable']`,
    ViewGroup1: `//android.widget.ViewGroup[@text='$variable']`,
    homeBtn: `//android.widget.ViewGroup[@text='homeBtn']`,
}),
}

...