无法迭代 Web 元素('list' 对象没有属性 'text')
Cannot Iterate Web element('list' object has no attribute 'text')
当我尝试迭代网页中的所有产品时出现以下错误,任何人都可以告诉我我做错了什么吗?
Error : AttributeError: 'list' object has no attribute 'text'
下面是我的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import pandas as pd
from bs4 import BeautifulSoup
import requests as r
import time
from selenium.webdriver.support.ui import Select
PATH="chromedriver.exe"
driver=webdriver.Chrome(PATH)
url1="https://valuebuds.com/pages/search-results-page"
driver.get(url1)
Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select#year_field")))).select_by_visible_text('1999')
driver.find_element_by_class_name("agree").click()
print("***CODE IS WORKING***")
products=driver.find_elements_by_id("snize-search-results-grid-mode")
for i in products:
title=i.find_elements_by_class_name("snize-title").text
print(title)
driver.quit()
如有任何帮助,我们将不胜感激。谢谢
而不是这个:
products=driver.find_elements_by_id("snize-search-results-grid-mode")
for i in products:
title=i.find_elements_by_class_name("snize-title").text
print(title)
试试这个:
products = driver.find_elements_by_class_name("snize-title")
print(len(products))
title = [prod.text for prod in products] # I kept in a list, but it's your choice, you can directly print the title for each with below lines:
# for title in products:
# print(title.text)
print(title)
有 15 个项目 snize-title
并且可以直接访问。
这是输出:
CODE IS WORKING
15
['HONEYSTICK BEEMASTER 510 BATTERY MULTI KIT', 'CLIPPER LIGHTER MICRO - RAW CLASSIC/BLACK', 'DABWARE PLATINUM DIAMOND SILICONE SPOON PIPE', 'DABWARE PLATINUM CLASSIC STYLE SILICONE SPOON PIPE', 'KARMA GLASS 9" SKINNY BEAKER GLASS BONG', "STONESMITHS' SLASH REPLACEMENT CHAMBER", 'MOOSE LABS MOUTHPEACE FILTER FULL KIT', 'PIECEMAKER KONJURER SILICONE SHERLOCK PIPE', 'KING PALM MINI PRE ROLL POUCH - 5 PACK', 'PURPLE POWER ULTRA INSTANT CLEANING FORMULA - 8OZ', 'BOLD MAC1 (H) DRIED - 3.5G', 'BOLD THE VISION (H) DRIED - 3.5G', 'CRAFTPORT PINK LEMONADE (IND) PRE-ROLL - 0.5G X 2', 'POOLBOY CHEM DAWG (IND) PRE-ROLL - 0.35G X 5', 'MARLEY NATURAL BLACK MASTER KUSH (IND) DRIED - 3.5G']
Process finished with exit code 0
当我尝试迭代网页中的所有产品时出现以下错误,任何人都可以告诉我我做错了什么吗?
Error : AttributeError: 'list' object has no attribute 'text'
下面是我的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import pandas as pd
from bs4 import BeautifulSoup
import requests as r
import time
from selenium.webdriver.support.ui import Select
PATH="chromedriver.exe"
driver=webdriver.Chrome(PATH)
url1="https://valuebuds.com/pages/search-results-page"
driver.get(url1)
Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select#year_field")))).select_by_visible_text('1999')
driver.find_element_by_class_name("agree").click()
print("***CODE IS WORKING***")
products=driver.find_elements_by_id("snize-search-results-grid-mode")
for i in products:
title=i.find_elements_by_class_name("snize-title").text
print(title)
driver.quit()
如有任何帮助,我们将不胜感激。谢谢
而不是这个:
products=driver.find_elements_by_id("snize-search-results-grid-mode")
for i in products:
title=i.find_elements_by_class_name("snize-title").text
print(title)
试试这个:
products = driver.find_elements_by_class_name("snize-title")
print(len(products))
title = [prod.text for prod in products] # I kept in a list, but it's your choice, you can directly print the title for each with below lines:
# for title in products:
# print(title.text)
print(title)
有 15 个项目 snize-title
并且可以直接访问。
这是输出:
CODE IS WORKING
15
['HONEYSTICK BEEMASTER 510 BATTERY MULTI KIT', 'CLIPPER LIGHTER MICRO - RAW CLASSIC/BLACK', 'DABWARE PLATINUM DIAMOND SILICONE SPOON PIPE', 'DABWARE PLATINUM CLASSIC STYLE SILICONE SPOON PIPE', 'KARMA GLASS 9" SKINNY BEAKER GLASS BONG', "STONESMITHS' SLASH REPLACEMENT CHAMBER", 'MOOSE LABS MOUTHPEACE FILTER FULL KIT', 'PIECEMAKER KONJURER SILICONE SHERLOCK PIPE', 'KING PALM MINI PRE ROLL POUCH - 5 PACK', 'PURPLE POWER ULTRA INSTANT CLEANING FORMULA - 8OZ', 'BOLD MAC1 (H) DRIED - 3.5G', 'BOLD THE VISION (H) DRIED - 3.5G', 'CRAFTPORT PINK LEMONADE (IND) PRE-ROLL - 0.5G X 2', 'POOLBOY CHEM DAWG (IND) PRE-ROLL - 0.35G X 5', 'MARLEY NATURAL BLACK MASTER KUSH (IND) DRIED - 3.5G']
Process finished with exit code 0