Невозможно запустить автоматизацию appium в разных версиях устройств Android

Для массивов со значениями без пробелов я использовал простой набор функций для итерации по каждому элементу массива и конкатенации массива:

_arrayToStr(){
    array=($@)

    arrayString=""
    for (( i=0; i<${#array[@]}; i++ )); do
        if [[ $i == 0 ]]; then
            arrayString="\"${array[i]}\""
        else
            arrayString="${arrayString} \"${array[i]}\""
        fi
    done

    export arrayString="(${arrayString})"
}

_strToArray(){
    str=$1

    array=${str//\"/}
    array=(${array//[()]/""})

    export array=${array[@]}
}

Первая функция с превращением массива в string, добавляя открывающиеся и закрывающиеся круглые скобки и избегая всех двойных кавычек. Вторая функция разделит кавычки и скобки и поместит их в фиктивный массив.

Чтобы экспортировать массив, вы должны передать все элементы исходного массива:

array=(foo bar)
_arrayToStr ${array[@]}

На этом этапе массив был экспортирован в значение $ arrayString. Чтобы импортировать массив в файл назначения, переименуйте массив и выполните противоположное преобразование:

_strToArray "$arrayName"
newArray=(${array[@]})
0
задан Vidya 18 January 2019 в 09:53
поделиться

1 ответ

In such scenarios, here is what you can do
  1. Найдите xpath элемента на разных устройствах Android и объявите их в объектной модели страницы.

    @AndroidFindBy(xpath="//<xpath of the element>") private MobileElement element1;

    @AndroidFindBy(xpath="//<xpath of the element>") private MobileElement element2;

  2. Вы можете написать вспомогательную функцию в классе объектной модели Page, которая сообщит вам, что ли конкретный элемент существует или нет на экране.

    public boolean elementExist (Xpath xpath) {if (! AppiumDriver.findElements (xpath) .isEmpty ()) {LOGGER.info ("Элемент существует"); вернуть истину; } else {LOGGER.info («Элемент не существует»); вернуть ложь; }}

Затем в тестовом примере вы можете сделать что-то вроде

if(elementExist(element1)) {
  click(element1);
} else if (elementExist(element2)) {
  click(element2);
}...
0
ответ дан Shrirang 18 January 2019 в 09:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: