Как получить текстовое значение координаты x и y, присутствующее в графическом интерфейсе, с помощью robotframework или с помощью python

#python #automation #robotframework #mouse #pyautogui

Вопрос:

Я хочу сначала выбрать текстовый сигнал тревоги, и мне нужно получить координаты этого текстового сигнала тревоги

Как только координата будет установлена, я хочу переместить мышь вправо

Я пытаюсь следующими способами, но я не нахожу точных координат в текстовом сигнале тревоги

Нажмите На Кнопку Управление

 [Arguments]    ${element}

Wait Until Keyword Succeeds    15x    5    Click Element    //*[text()='${element}']

Selenium2Library.mouse over    //*[text()='${element}']

${width}    ${height} =    Get Element Size    //*[text()='${element}']

${x}=    Get Horizontal Position    //*[text()='${element}']

${y}=    Get Vertical Position    //*[text()='${element}']

click element at coordinates    //*[text()='${element}']    ${x}    ${y}

${width}    ${height} =    Selenium2Library.Get Window Size
 

Пожалуйста, помогите мне решить эту проблему

Ответ №1:

Вы можете получить координаты элемента с помощью javascript:

 ${Top}    Execute Javascript    var element=document.querySelector("yourElementCSSSelector"); var rect = element.getBoundingClientRect(); return rect.top

${Left}    Execute Javascript    var element=document.querySelector("yourElementCSSSelector"); var rect = element.getBoundingClientRect(); return rect.left
 

Это даст вам левые верхние координаты элемента

Комментарии:

1. Выполнение JavaScript: элемент var=документ. querySelector(«//*[text()=’titanDiameterNgStatistics’]»); var rect = element.getBoundingClientRect(); возврат rect.top 19:26:56.270 ОШИБКА InvalidElementStateException: Сообщение: недопустимое состояние элемента: Не удалось выполнить «querySelector» в «Документе»: «//*[text ()=’titanDiameterNgStatistics’] » недопустимый селектор. (Информация о сеансе: chrome=90.0.4430.212) (Информация о драйвере: chromedriver=72.0.3626.69 (3c16f8a135abc0d4da2dff33804db79b849a7c38),платформа=Windows NT 10.0.18363 x86_64) У меня возникает эта проблема

2. используйте css вместо xpath