Карта Изображения Нажатие на Селен - PullRequest
0 голосов
/ 24 августа 2018

Мне нужно протестировать приложение, которое имеет огромное изображение, но только небольшая его часть доступна для клика по картам изображений.

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

Может ли кто-нибудь указать мне, как регистрировать текущее положение мыши или как показать мышь во время теста?

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

Смотрите ниже мой фрагмент кода:

        el=driver.find_elements_by_xpath("/html/body/form/table/tbody/tr/td/img")[0]
        #el=driver.find_elements_by_xpath("//html/body/map/area[2]")[0]
        width=el.size["width"]
        height=el.size["height"]        

        action = webdriver.common.action_chains.ActionChains(driver)
        action.move_to_element(el)
        print driver.get_window_position()
        action.move_by_offset(193, 310)
        print driver.get_window_position()
        action.click()
        action.perform()

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Просто для справки.Я закончил тем, что нашел решение.

# Wait for the map to show up and navigate to account page
try:
    WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "Map")))
except Exception, e:
    print "Image with token toot long to load..."
    raise AssertionError()

href = driver.find_element_by_xpath("//html/body/map/area[2]").get_attribute("href")
driver.get(href)

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

Скрипт работает хорошо, и даже лучше, он не зависит от разрешения экрана.

0 голосов
/ 24 августа 2018

Вы пробовали кликать, используя JavaScript?

driver.execute_script("arguments[0].click();", element)
...