Python selenium - выберите элемент, используя цепочку действий - PullRequest
0 голосов
/ 27 августа 2018

У меня совершенно уникальная цель, и мне трудно работать с моим кодом на 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 чему-то, что я ожидаю найти в этом местоположении.

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