我正在尝试让Selenium与Chrome一起工作,但我不断遇到以下错误消息(以及类似的其他错误消息):
AttributeError:'WebDriver'对象没有属性'find_element_by_name'
对于find_element_by_id()
,find_element_by_class()
等方法也会出现相同的问题。
我也无法调用send_keys()
方法。
我只是在运行在ChromeDriver - WebDriver for Chrome - Getting started提供的测试代码。
import time
from selenium import webdriver
driver = webdriver.Chrome("C:/Program Files/Chrome Driver/chromedriver.exe") # Path to where I installed the web driver
driver.get('http://www.google.com/');
time.sleep(5) # Let the user actually see something!
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # Let the user actually see something!
driver.quit()
我使用的是 Google Chrome 版本 103.0.5060.53,从 Downloads 下载了 ChromeDriver 103.0.5060.53。
运行代码时,Chrome 打开并导航到 google.com,但收到以下输出:
C:\Users\Admin\Programming Projects\Python Projects\Clock In\clock_in.py:21: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome("C:/Program Files/Chrome Driver/chromedriver.exe") # Optional argument, if not specified will search path.
DevTools listening on ws://127.0.0.1:58397/devtools/browser/edee940d-61e0-4cc3-89e1-2aa08ab16432
[9556:21748:0627/083741.135:ERROR:device_event_log_impl.cc(214)] [08:37:41.131] USB: usb_service_win.cc:415 Could not read device interface GUIDs: The system cannot find the file specified. (0x2)
[9556:21748:0627/083741.149:ERROR:device_event_log_impl.cc(214)] [08:37:41.148] USB: usb_device_handle_win.cc:1048 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
[9556:21748:0627/083741.156:ERROR:device_event_log_impl.cc(214)] [08:37:41.155] USB: usb_device_handle_win.cc:1048 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
[9556:21748:0627/083741.157:ERROR:device_event_log_impl.cc(214)] [08:37:41.156] USB: usb_device_handle_win.cc:1048 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
[9556:21748:0627/083741.157:ERROR:device_event_log_impl.cc(214)] [08:37:41.156] USB: usb_device_handle_win.cc:1048 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
Traceback (most recent call last):
File "C:\[REDACTED]", line 27, in <module>
search_box = driver.find_element_by_name('q')
AttributeError: 'WebDriver' object has no attribute 'find_element_by_name'
[21324:19948:0627/083937.892:ERROR:gpu_init.cc(486)] Passthrough is not supported, GL is disabled, ANGLE is
注意:我替换了本帖中的文件路径。
我不认为DevTools的监听部分与该问题有关,但是我想包含它,以防万一。
find_elements()
而不是find_elements_by_*
。请参考这个非常好的SO答案:https://dev59.com/tVEG5IYBdhLWcg3wO3dP - MikhailRatnerfind_element_by_id()
,它变成了find_element("id", "some_id")
- 太好了,谢谢。 - nyyrikki