Объектная модель страницы с UIAutomator и Python - PullRequest
0 голосов
/ 19 сентября 2018

Python и UIAutomator

У меня есть следующая функция:

class BasePage:
    def __init__(self, device):
        self.device = device


def click(self, resourceId=None, text=None, className = None, descriptionContains= None, index=None, description=None):
    self.device(
            resourceId=resourceId,
            text=text,
            className=className,
            descriptionContains= descriptionContains,
            index=index,
            description=description
        ).click()


if __name__ == "__main__":
    start = time.time()
    from uiautomator import Device
    d =Device('520a7f14b9')
    basepage = BasePage(d)
    basepage.click(text="Phone")
    basepage.device.press.home()
    print time.time() - start

Теперь не всегда функция click передается со всеми аргументами.Иногда я могу щелкнуть элемент, используя только текст, а иногда - комбинацию text + className.

Вышеуказанный вызов basepage.click (text = "Phone") будет FAIL,

uiautomator.JsonRPCError: JsonRPC Error code: 0, Message: java.lang.IllegalArgumentException: className cannot be null

Как в этом случае я могу вызвать функционал basepage.click () только с текстом.

1 Ответ

0 голосов
/ 06 июня 2019

Вы должны изменить код (className = None) для (className = " "), потому что вы передаете строковое значение, а не целое значение!

...