У меня совершенно уникальная цель, и мне трудно работать с моим кодом на Python. В большом приложении селена я пытаюсь просто проверить, соответствует ли элемент, расположенный в определенной позиции в браузере, элементу.
Например, если вы посмотрите на тестовый сайт: https://learn.letskodeit.com/p/practice
есть один элемент (ссылка), помеченный «Открыть вкладку», и его координаты в браузере: x = 588, y = 576.
Это код, который я использую для подтверждения в этой позиции у меня есть этот элемент:
target_elem = driver.find_element_by_id("opentab")
print("target elem actual location: {}".format(target_elem.location))
time.sleep(1)
zero_elem = driver.find_element_by_tag_name('body')
x_body_offset = zero_elem.location["x"]
y_body_offset = zero_elem.location["y"]
print("Body coordinates: {}, {}".format(x_body_offset, y_body_offset))
x = 588
y = 576
actions = ActionChains(driver)
actions.move_to_element_with_offset(driver.find_element_by_tag_name('body'), -x_body_offset, -y_body_offset).click()
actions.move_by_offset( x, y ).send_keys(Keys.ESCAPE).perform()
elem_found = driver.switch_to.active_element
print(elem_found.text)
когда я печатаю elem_found.text, я не получаю «Открыть вкладку».
однако, если внутри цепочки действий, прямо перед execute (), я добавляю click (), приведенный выше код нажимает на ссылку «Открыть вкладку».
Отсюда мой вопрос: можем ли мы просто выбрать элемент, зная его точное положение в браузере?
Я полностью понимаю, что получение элемента по местоположению на самом деле не лучший способ получить элемент, но с моей стороны, мне действительно нужно иметь возможность подтвердить, соответствует ли элемент в позиции X, Y чему-то, что я ожидаю найти в этом местоположении.