Получение координат и размера элемента webelement

Коллеги, в связи с тем что на python нет никакого более-менее нормального аналога ashot или gemini - пытаюсь написать скрипт который делает скриншот всей страницы, находит элемент, берет его координаты и вырезает из полученного скрина. Потом полученный скрин элемента сравнивается с базовым.

Но возникла проблема при получении координат и размера элемента.
Допустим хочу получить элемент поисковой строки яндекса Screenshot by Lightshot по размерам он 692 x 46

Сам webdriver при выполнении скрипта мне говорит эти же размеры element.size {‘width’: 692, ‘height’: 46}

    driver = webdriver.Chrome()
    driver.set_window_position(0,0)
    driver.set_window_size(1024, 768)
    driver.get("https://ya.ru/")
    element = driver.find_element_by_css_selector("div.search2__input")
    driver.get_screenshot_as_file('screenshot.png')
    print element.location
    print element.size

Однако когда я открываю полученный скрин Screenshot by Lightshot - то реальные размеры на нем другие. То же самое и с location. И соответственно если я вырежу по координатам часть картинки - то нужный мне элемент туда не попадет полностью.

Самое интересное что скрин сделанный с помощью PhantomJS отображает нормальные размеры Screenshot by Lightshot

Кто нибудь сталкивался с таким поведением?

Не придумывайте велосипед :slight_smile: Читайте офф док по биндингу selenium для Python. У класса WebElement есть метод screenshot.
http://selenium-python.readthedocs.io/api.html

У вас же ретина скрин наверное. А фантом потому и дает правильные размеры, что не скейлит при рендеринге.

1 лайк