Как можно получить XPATH из координат «x» и «y», используя Appium в Python? - PullRequest
0 голосов
/ 05 мая 2020

Есть ли какой-либо способ получить xpath для мобильного приложения, учитывая только координаты x и y для элемента, используя Appium и Python?

1 Ответ

1 голос
/ 06 мая 2020

На самом деле это невозможно сделать в Appium вообще. И для этого нет такого ключевого слова.

Но вы можете сделать это самостоятельно следующим образом.

1- Получить исходный код страницы

page_src = driver.page_source

2 - Получить атрибут координат всех элементов в словаре или списке

import xml.etree.ElementTree as el_tree

page_src = driver.page_source
element_coords={}
page_src_xml = el_tree.fromstring(page_src)
for element in page_src_xml.iter():
   element_bounds = element.attrib['bounds']
   coords = {}

# calculate center of elements (which is x,y of element)

   bounds = element_bounds.replace('[', '').replace(']', ',').split(',')
   coords.update({'x': (float(bounds[0]) + float(bounds[2])) / 2})
   coords.update({'y': (float(bounds[1]) + float(bounds[3])) / 2})

# coords is what you need for next steps

3 - Попытайтесь сравнить координаты (из шага 2) с желаемыми, в течение или пока l oop.

4 - когда вы найдете элемент с нужными координатами, вы просто можете вернуть элемент и действовать на нем.

5 - Здесь вам не нужно получать XPATH для выполнения каких-либо действий с элементом, потому что вы его уже нашли.

Но если вам нужен элемент xpath для дальнейшего использования, я боюсь, что вы можете получить XPATH из элемента, но другой вариант, например «текст» или «content-des c», может быть доступен.

Надеюсь, это поможет

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