Невозможно получить атрибут элемента при использовании одноуровневого элемента в xpath - PullRequest
0 голосов
/ 30 января 2020

Я использую Appium в своих мобильных тестах и ​​хотел бы получить текст элемента. Я могу получить элемент, используя accessibility-id и xpath. Вот код, используемый для получения элемента:

firstId = 'xpath', '//XCUIElementTypeStaticText[@name="5 Roles"]' или
secondId = 'accessibility_id', '5 Roles' или
thirdId = 'xpath', '//XCUIElementTypeProgressIndicator/following-sibling::XCUIElementTypeOther[1]'

Тогда я пытаюсь чтобы получить атрибут элемента. Я предпочитаю использовать третий идентификатор вместо двух других, упомянутых выше. Я использую следующий код для получения атрибута:

    def get_attribute_element(self, element):
        el = self.get_element(element)
        el_value = el.get_attribute('label')
        return el_value

При использовании firstId и secondId код успешно выбирает атрибут и мои тесты проходят, но при использовании thirdId мои тесты не выполняются как el_value=None , Я понятия не имею, почему он возвращает None, когда идентификатор использует родного брата. Я проверил третий идентификатор в инспекторе Appium, и он правильно идентифицирует элемент в приложении, а также уникальный идентификатор.

1 Ответ

0 голосов
/ 30 января 2020

Я разобрался в чем проблема. Элемент 'xpath', '//XCUIElementTypeProgressIndicator/following-sibling::XCUIElementTypeOther[1]' хорошо выглядит при просмотре из инспектора Appium, но у него есть дочерний элемент с атрибутом, который я хотел бы получить. Так что мне просто нужен дочерний объект этого элемента:

'xpath', '//XCUIElementTypeProgressIndicator/following-sibling::XCUIElementTypeOther[1]/XCUIElementTypeStaticText'
...