如何在Selenium/Python中单击并打印多个元素?

2024-09-29 23:18:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我爸爸经营着一家企业,有一个专门的批发网站,但我注意到,当他购买一次性鞋面时,他必须点击每一个鞋面,然后查看每一种味道的鞋面的库存。我想创建一个程序,打印出每个一次性鞋面的每种味道的库存。到目前为止,我转到每个vape的URL,然后检查显示不同口味库存的表格,并打印出该表格。但是,我不想为每个vape输入特定的URL,然后为每个股票表键入print。是否有一种更干净的方法,只使用页面的URL,该页面使用“”driver.get('https://safagoods.com/vape-shop/disposable-vape-devices/“)”然后从那里单击所有不同的VAPE并打印出它们的库存表?如果这是一个混乱的问题,很抱歉。希望如果运行我的代码,它能更好地解释这一点:

from selenium import webdriver

import time

PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.set_window_size(2000,1000)

driver.get('https://safagoods.com/vape-shop/disposable-vape-devices/huge-disposables')
HUGE_vape = driver.find_element_by_id('input-option2231')
print(HUGE_vape.text)
driver.get('https://safagoods.com/vape-shop/disposable-vape-devices/kangvape-onee-max-disposables')
KANG_vape = driver.find_element_by_id('input-option2228')
print(KANG_vape.text)
driver.get('https://safagoods.com/vape-shop/disposable-vape-devices/art-x-disposables')
ART_vape = driver.find_element_by_id('input-option2196')
print(ART_vape.text)


driver.close()

到目前为止,我有三个VAPE,但有57个不同的VAPE,有时他们会更新商品。我想知道是否有办法从我上面发布的第一个一次性vape页面开始,打印出所有可用vape的库存,而不是键入每个vape的信息。如果没有,我可以把它们都打出来,只是想看看是否有更好的选择


Tags: httpscomurlgetdriver库存页面shop
1条回答
网友
1楼 · 发布于 2024-09-29 23:18:45

如果你用你的产品刮去主页,这应该很容易:

解决方案

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')

driver.get("https://safagoods.com/vape-shop/disposable-vape-devices/")
wait = WebDriverWait(driver, 15)
vapes = wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, ".caption>.name>a")))
vape_names = []
for vape in vapes:
    vape_names.append(vape.text)
print(*vape_names, sep='\n')

结果

HUGE (BRAND) DISPOSABLE VAPE DEVICES 10PC [3000 PUFFS]
KANGVAPE ONEE MAX DISPOSABLE VAPE DEVICES 10PC [5000 PUFFS]
ART X DISPOSABLES 10PC [5000 PUFFS]
FUME INFINITY DISPOSABLE VAPE DEVICES 5PC DISPLAY BOX
SEA AIR PLUS DISPOSABLE VAPES 10PC
HYDE RETRO RECHARGE DISPOSABLES 10PC DISPLAY BOX

等等

从技术上讲,您可以创建一个空列表并在其中添加文本值。 注意我如何使用css选择器和显式等待

相关问题 更多 >

    热门问题