Метод определения селена не возвращает тот же тип координат для PyAutoGui - PullRequest
0 голосов
/ 08 июля 2019

Я хочу вместо Selenium Actions использовать PyAutoGui.

В прошлом у меня была та же проблема с Java, решение было добавить смещение по осям "Y" из-за интерфейса браузера и панели запуска окон. Теперь у меня также есть смещение по осям "X", хотя я использую хром. Также каждый элемент имеет свое смещение.

def move_mouse(xpath) :
    elem = driver.find_element_by_xpath(xpath)
    if elem.is_displayed() :
        x = elem.location.get('x')
        y = elem.location.get('y')
        print(x)
        print(y)
        pyautogui.moveTo(x,y,2)



chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-infobars")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("https://www.python.org/")
driver.maximize_window()
print("Window Size : "+ str(driver.get_window_size()))
time.sleep(2)
print("Window Position : "+str(driver.get_window_position()))
move_mouse('//*[@id="downloads"]/a')

Вот вывод:

Window Size : {'width':1552, 'height': 840}

У меня разрешение экрана 1920х1080, полноэкранный режим дает те же результаты

Window Position : {'x' : -8, 'y': -8}

Я не могу понять, почему позиция окна минус

1 Ответ

0 голосов
/ 08 июля 2019

У меня то же самое после использования "driver.maximize_window ()" надеюсь, что это нормально, если вы используете win + стрелку вверх до максимального окна, вы получите "лучшие" результаты.

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