在 python selenium webdriver 中发送密钥而不指定元素(操作链不起作用)

Send keys without specifying element in python selenium webdriver (action chains did not work)

我有一个脚本,我在其中单击一个按钮,光标开始闪烁。我通过 xpath/id/class 名称指定元素以发送密钥的所有尝试都失败了。因此,我试图将键发送到光标闪烁的位置。

我已经尝试了一些解决方案:

from selenium.webdriver.common.action_chains import ActionChains

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

这个解决方案根本没有发送任何密钥。

  1. 切换到活动元素。
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

目前不确定还可以尝试什么。对为什么会这样感到困惑。

一个原因可能是,元素可能在 iframe 中,正如@Pedro 提到的那样。

要在没有 XPath 和其他选择器的情况下获取活动元素,您可以尝试使用 javascript:

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

如果这仍然不起作用,则可能是 iframe 或虚拟软件 textinput (js, canvas, ...)。您可以在浏览器控制台中使用一些 javascript 命令来检查响应的方式和元素。