我想展示 selenium,而不是启动一个完整的 Java / C# 套件,我想快速使用 Python,因为它可以通过单个脚本完成。
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
print("sample test case started")
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("MyUrl")
element = driver.find_element(By.ID, "Username")
element.send_keys("MyUsername")
driver.close()
print("sample test case successfully completed")
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
AttributeError: 'dict' object has no attribute 'send_keys'
我认为 find_element 方法返回某种 dict (Dictonary??) 对象而不是 selenium web 元素。我怎样才能解决这个问题??
小智 6
我遇到了这个问题。这似乎是 Selenium 4.0 中的某种错误。我已经恢复到 3.141.0 ( pip install selenium==3.141.0),它似乎已经解决了这个问题。
Selenium 项目将转向仅支持 W3C,而 Chrome(自版本 75 起)默认使用 W3C。如果您有旧版本的 chromedriver 和 selenium >=4,您可能会遇到您所描述的问题,这就是我的情况的问题。更新您的 chromedriver或将 Selenium 版本降级到 <4,它应该可以解决您的问题。
我通过禁用 w3c 使用 Selenium 4.1.0 和 Chromedriver 98 重现了这个问题:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_experimental_option("w3c", False)
driver = webdriver.Chrome(options=options)
Run Code Online (Sandbox Code Playgroud)
因此,这是可能导致此错误的另一种选择。您可以通过删除它或将其值更改为 True 来修复它。
| 归档时间: |
|
| 查看次数: |
7203 次 |
| 最近记录: |