Я должен протестировать приложение с огромным изображением, но лишь небольшая его часть можно кликать по картам изображений.
Я пробовал все, чтобы вычислить правильную позицию и щелкнуть, но щелчок находится за пределами позиции, и тест завершился неудачно.
Может ли кто-нибудь указать мне, как регистрировать текущую позицию мыши или как отображать мышь во время теста?
Я использую цепи действия, чтобы переместить курсор мыши в центр изображения, но оттуда все мои вычисления сделали щелчок вне прямоугольника карты изображения.
Ниже приведен фрагмент кода:
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()
Спасибо,
Как ссылка. Я решил найти решение.
# 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 в var, а затем я нахожусь на этом href.
Скрипт работает красиво и даже лучше не зависит от разрешения экрана.
Вы пытались щелкнуть по javascript?
driver.execute_script("arguments[0].click();", element)