Отправка ключей без указания элемента в python selenium webdriver (цепочки действий не работали) - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть скрипт, в котором я нажимаю кнопку, и курсор начинает мигать. Все мои попытки указать элемент через имя xpath / id / class для отправки ключей потерпели неудачу. Итак, я пытаюсь просто отправить ключи туда, где мигает курсор.

Я пробовал несколько решений:

  1. Отправка ключей без указания элемента в python selenium webdriver
from selenium.webdriver.common.action_chains import ActionChains

actions = ActionChains(driver)
actions.send_keys('dummydata')
actions.perform()

Это решение не отправляло никаких ключей вообще.

Переключение на активный элемент.
elem = driver.switch_to.active_element()
elem['value'].send_keys('dummydata')
#OR#
elem.send_keys('dummydata')

В этом случае я получил ошибку:

elem = driver.switch_to.active_element()
TypeError: 'WebElement' object is not callable

Не уверен, что еще можно попробовать на этом этапе. Озадачен, почему это происходит.

1 Ответ

1 голос
/ 19 апреля 2020

Одной из причин может быть то, что элемент может находиться внутри iframe, как упоминает @Pedro.

Чтобы получить активный элемент без XPath и других селекторов, вы можете попробовать использовать javascript:

elem = driver.executeScript("document.activeElement")

Если это все еще не работает, это либо iframe, либо, возможно, виртуальный программный ввод текста (js, canvas, ...). Вы можете поиграть с некоторыми командами javascript в консоли браузера, чтобы проверить, как и на что реагируют элементы.

...