Как мы можем сделать элемент доступным для касания, когда Appium обнаруживает его и сообщает об успешном нажатии, но дейPython

Программы на Python
Ответить
Anonymous
 Как мы можем сделать элемент доступным для касания, когда Appium обнаруживает его и сообщает об успешном нажатии, но дей

Сообщение Anonymous »

Эта проблема наблюдается только в версиях iOS 18:
Я пытаюсь нажать на элемент, который является кнопкой «Отмена», но действие в приложении не отражено. Проверив журналы, я обнаружил, что Appium обнаружил элемент и сообщил об успешном нажатии на него.

Вот код ответа Appium, указывающий на это. обнаружил кнопку «Отмена»:

2025-01-10 11:55:36:786 [XCUITestDriver@301b (578dd39b)] Проксирование [POST /element] в [POST http://localhost:8200/session/49CFF705- ... 8A/element] с телом: {"using":"строка предиката","value":"type == ' XCUIElementTypeButton' И метка СООТВЕТСТВУЕТ 'Отменить'"
2025-01-10 11:55:37:175 [XCUITestDriver@301b (578dd39b)] Получил ответ со статусом 200: {"value":{"ELEMENT":"95120000-0000-0000-DF02-000000000000","element-6066-11e4-a52e-4f735466cecf": "95120000-0000-0000-DF02-000000000000"},"sessionId":"49CFF705-95BB-406E-905D-420EE8DD0E8A"
2025-01-10 11:55:37:176 [XCUITestDriver@301b (578dd39b)] Ответ клиенту с результатом driver.findElement(): {"element-6066-11e4-a52e-4f735466cecf":"95120000-0000-0000-DF02-000000000000","ELEMENT":"95120000-0000-0000-DF02-000000000000"
2025-01-10 11:55:37:176 [HTTP] POST /session/578dd39b-36d5-44d7-b020-7d5a64084211/element/95120000-0000-0000-DF02-000000000000/click {}
10.01.2025 11:55:41: 240 [XCUITestDriver@301b (578dd39b)] Прокси-сервер драйвера активен, запрос передается через HTTP-прокси
2025-01-10 11:55:41:240 [XCUITestDriver@301b (578dd39b)] Выполняется команда 'proxyReqRes'
10 января 2025 г. 11:55:41:240 [XCUITestDriver@301b (578dd39b)] Соответствует '/session/578dd39b-36d5-44d7-b020-7d5a64084211/element/95120000-0000-0000-DF02-000000000000/click' для имени команды 'click'
2025-01-10 11:55:41:240 [XCUITestDriver@301b (578dd39b)] Проксирование [POST /session/578dd39b-36d5-44d7-b020-7d5a64084211/element/95120000-0000-0000-DF02-000000000000/click] в [POST http://localhost:8200/session/49CFF705- ... 0000/click] с телом: {}
2025-01-10 11:55:44:857 [XCUITestDriver@301b (578dd39b)] Получен ответ со статусом 200: {"value":null,"sessionId":"49CFF705-95BB-406E-905D-420EE8DD0E8A"
10.01.2025 11:55:44:857 [XCUITestDriver@301b (578dd39b)] Замена sessionId 49CFF705-95BB-406E-905D-420EE8DD0E8A на 578dd39b-36d5-44d7-b020-7d5a64084211
2025-01-10 11:55:44:858 [HTTP] POST /session/578dd39b-36d5-44d7-b020-7d5a64084211/element { "using":"-ios строка предиката","value":"type == 'XCUIElementTypeButton' И метка СОВПАДАЕТ 'Отмена'"
2025-01-10 11:55:44:860 [XCUITestDriver@301b (578dd39b)] Вызов AppiumDriver.findElement() с аргументами : ["-ios строка предиката","type == 'XCUIElementTypeButton' И метка СОВПАДАЕТ 'Отмена'","578dd39b-36d5-44d7-b020-7d5a64084211"]
2025-01-10 11:55:44:860 [XCUITestDriver@301b (578dd39b)] Выполняется команда 'findElement'
2025-01-10 11:55:44:860 [XCUITestDriver@301b (578dd39b)] Допустимые стратегии локатора для этого запроса: xpath, id, name, class name, строка предиката -ios, цепочка классов -ios , идентификатор доступности, селектор CSS
10 января 2025 г. 11:55:44:860 [XCUITestDriver@301b (578dd39b)] Ожидание условия до 1000 мс
2025-01-10 11:55:44:861 [XCUITestDriver@301b ( 578dd39b)] Соответствует «/element» имени команды. 'findElement'
10 января 2025 11:55:44:862 [XCUITestDriver@301b (578dd39b)] Проксирование [POST /element] в [POST http://localhost:8200/session/49CFF705- ... 8A/element] с телом: {"using":"строка предиката","value":"type == 'XCUIElementTypeButton' AND label MATCHES ' Отмена'"
10 января 2025 г. 11:55:45:250 [XCUITestDriver@301b (578dd39b)] Получил ответ со статусом 200: {"value":{"ELEMENT":"95120000-0000-0000-DF02-000000000000","element-6066-11e4-a52e-4f735466cecf": "95120000-0000-0000-DF02-000000000000"},"sessionId":"49CFF705-95BB-406E-905D-420EE8DD0E8A"
2025-01-10 11:55:45:251 [XCUITestDriver@301b (578dd39b)] Ответ клиенту с результатом driver.findElement(): {"element-6066-11e4-a52e-4f735466cecf":"95120000-0000-0000-DF02-000000000000","ELEMENT":"95120000-0000-0000-DF02-000000000000"
2025-01-10 11:55:45:251 [HTTP]

Вот код, который присутствует внутри метода click:

Код: Выделить всё

    def click(self, on_element: WebElement | None = None) -> ActionChains:
"""Clicks an element.

:Args:
- on_element: The element to click.
If None, clicks on current mouse position.
"""
if on_element:
self.move_to_element(on_element)

self.w3c_actions.pointer_action.click()
self.w3c_actions.key_action.pause()
self.w3c_actions.key_action.pause()

Code present inside move_to_element:
def move_to_element(self, to_element: WebElement) -> ActionChains:
"""Moving the mouse to the middle of an element.

:Args:
- to_element: The WebElement to move to.
"""

self.w3c_actions.pointer_action.move_to(to_element)
self.w3c_actions.key_action.pause()

return self

Code present inside move_to:
def move_to(
self,
element,
x=0,
y=0,
width=None,
height=None,
pressure=None,
tangential_pressure=None,
tilt_x=None,
tilt_y=None,
twist=None,
altitude_angle=None,
azimuth_angle=None,
):
if not isinstance(element, WebElement):
raise AttributeError("move_to requires a WebElement")

self.source.create_pointer_move(
origin=element,
duration=self._duration,
x=int(x),
y=int(y),
width=width,
height=height,
pressure=pressure,
tangential_pressure=tangential_pressure,
tilt_x=tilt_x,
tilt_y=tilt_y,
twist=twist,
altitude_angle=altitude_angle,
azimuth_angle=azimuth_angle,
)
return self



Подробнее здесь: https://stackoverflow.com/questions/793 ... -a-success
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»