如何解决AttributeError: 'list' 对象没有属性 'isDisplayed' Python Selenium
我正在尝试制作一个库存机器人来检查是否有库存以及何时尝试使用:
if ATC.isdisplayed():
我收到错误:
AttributeError: 'list' object has no attribute 'isdisplayed'
我的全部代码:
import time
import asyncio
import colorama
import subprocess
from colorama import Fore,Back,Style
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import webdriverwait
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.expected_conditions import presence_of_element_located
driver = webdriver.Chrome(
executable_path=r'C:\Users\Joe mama\Desktop\app\chromedriver.exe')
colorama.init(autoreset=True)
driver.get("https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/graphics-cards/msi-geforce-rtx-3060-ti-8-gb-gaming-x-trio-graphics-card-10219250-pdt.html")
driver.maximize_window()
Name = driver.find_elements_by_css_selector(
"#content > div.product-page > section > div.to-print > h1 > span:nth-child(2)")
Price = driver.find_elements_by_css_selector(
"#product-actions > div.amounts > div > div > span.ProductPriceBlock__Price-kTVxGg.QWqil")
Link = driver.find_elements_by_tag_name("a")
OOS = driver.find_elements_by_css_selector(
"#product-actions > div.oos.oos-no-alt.border.space-b > strong")
ATC = driver.find_elements_by_css_selector(
"#product-actions > div.channels.space-b > div.space-b.center > button")
while True:
try:
if OOS.isdisplayed():
print(colorama.Fore.RED +
f"|| {Name[0].text} || Out Of Stock || {Price[0].text} ||")
driver.refresh()
except:
if ATC.isdisplayed():
print(colorama.Fore.GREEN +
f'|| {Name[0].text} || IN STOCK || {Price[0].text} ||')
如果有人可以提供帮助,那将非常有帮助,我多年来一直在努力解决这个问题。
解决方法
ATC
属于 list 类型,因为 find_elements_by_css_selector() 会返回一个 list。
但是,没有 isDisplayed()
而是 is_displayed() 的方法/属性,并且仅适用于 WebElement。
解决方案
您需要遍历通过以下方式标识的元素列表:
OOS = driver.find_elements_by_css_selector("#product-actions > div.oos.oos-no-alt.border.space-b > strong")
可能使用 for()
循环。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。