簡體   English   中英

Python selenium - AttributeError: 'dict' object 沒有屬性 'get_attribute'

[英]Python selenium - AttributeError: 'dict' object has no attribute 'get_attribute'

我想展示 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")

我收到此錯誤消息: AttributeError: 'dict' object has no attribute 'send_keys'

我認為 find_element 方法正在返回某種字典(字典??) object 而不是 selenium web 元素。 我怎樣才能解決這個問題??

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)

因此,這是可能導致此錯誤的另一種選擇。 您可以通過刪除它或將其值更改為 True 來修復它。

我遇到了這個確切的問題。 這似乎是 Selenium 4.0 中的某種錯誤。 我已經恢復到 3.141.0( pip install selenium==3.141.0 ),它似乎已經解決了這個問題。

親愛的朋友,瀏覽器有問題 從章節了解您的瀏覽器版本 然后參考以下網站 到您的瀏覽器版本 下載所需的驅動

https://chromedriver.chromium.org/downloads

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM