我无法使用 Selenium WebDriver 和 Python 发送密钥

Amg*_*Amg 6 python webdriver selenium-webdriver

我正在尝试执行一个简单的测试:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()

driver.get('http://google.com')
driver.find_element_by_name('q')
driver.send_keys('hey')
Run Code Online (Sandbox Code Playgroud)

我收到错误:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()

driver.get('http://google.com')
driver.find_element_by_name('q')
driver.send_keys('hey')
Run Code Online (Sandbox Code Playgroud)

有什么问题?

ale*_*cxe 4

WebDriver实例没有send_keys()方法。这就是错误的真正含义:

“WebDriver”对象没有属性“send_keys”

调用方法返回的实例send_keys()-在您的情况下:WebElementfind_element_by_*()find_element_by_name()

element = driver.find_element_by_name('q')
element.send_keys("hey")
Run Code Online (Sandbox Code Playgroud)

仅供参考,还有一个ActionChains在构建操作链或应用更复杂的操作(如拖放或鼠标移动)时很有用。在这种情况下这是一个开销,但只是为了举例:

from selenium.webdriver.common.action_chains import ActionChains

actions = ActionChains(driver)
actions.move_to_element(element).send_keys("hey").perform()
Run Code Online (Sandbox Code Playgroud)