【发布时间】:2022-12-09 21:13:44
【问题描述】:
我正在观看有关 Python 的 Selenium Python Selenium Tutorial - Tech with Tim 的 YouTube 教程视频。该视频是 2 年前上传的,似乎 python 的 Selenium 发生了变化( find_elements_by_... 函数被 find_elements(by = ...) 取代)。我的问题是,当我尝试转换代码时,我得到一个 AttributeError 作为:AttributeError: 'list' object has no attribute 'find_elements'。我正在共享代码的旧版本和新版本。旧版本之间有什么区别,为什么会出现以下错误?我该如何解决?提前致谢!
###Old Version###
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
PATH = "my_path"
driver = webdriver.Chrome(PATH)
driver.get("https://techwithtim.net")
search = driver.find_element_by_name("s")
search.send_keys("test")
search.send_keys(Keys.RETURN)
try:
main = WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.ID, "main")))
articles = main.find_element_by_class_name("entry-title")
finally:
driver.quit()
###My New Version###
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
PATH = "my_path"
driver = webdriver.Chrome(PATH)
driver.get("https://techwithtim.net")
search = driver.find_element(By.NAME, value = "s")
search.send_keys("test")
search.send_keys(Keys.RETURN)
try:
main = WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.ID, "main")))
articles = main.find_elements(By.CLASS_NAME, "entry-title")
finally:
driver.quit()
视频中,导师试图获取ID:main中的文章。但是,当我尝试重写代码时,出现属性错误。
【问题讨论】:
标签: python selenium selenium-webdriver webdriverwait attributeerror