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

wawa

我父亲经营一家企业,他有一个特定的批发网站,但我注意到当他购买一次性电子烟时,他必须点击每个电子烟,然后查看该电子烟每种口味的库存。我想创建一个程序,打印出每种一次性电子烟的每种口味的库存。到目前为止,我转到每个 vape 的 URL,然后检查显示不同口味库存的表格并将该表格打印出来。但是,我不想为每个电子烟输入特定的 URL,然后为每个股票表键入 print。有没有一种更简洁的方法来使用列出所有一次性电子烟的页面的 URL 使用“”driver.get('https://safagoods.com/vape-shop/disposable-vape-devices/')”” 然后从那里点击所有不同的电子烟并打印出他们的库存表?对不起,如果这是一个混乱的问题。希望如果我的代码被运行,它会更好地解释它:

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()

到目前为止,我有 3 个电子烟,但有 57 个不同的电子烟,有时他们会更新商品。我不想为每个电子烟输入信息,而是想知道是否有办法从我上面发布的初始一次性电子烟页面开始并打印出所有可用电子烟的库存。如果没有,我可以将它们全部输入,只是想看看是否有更好的选择。

生机勃勃的

如果您使用产品抓取主页应该很容易:

解决方案

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 选择器和显式等待。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在JavaSCript中从数组中打印多个元素?

如何在堆栈中打印多个随机元素/项目?

如何在C ++中打印多个输入和输出?

如何在 Java 中在具有多个元素的对象列表中找到用于打印的特定元素?

vba:如何在iframe中单击元素

如何在 Python 中打印子元素?

如何在 FOR 循环中从多个列表打印多个元素?

如何在Perl中打印多个变量?

如何在Smalltalk中打印多个输出

如何在JavaScript中记录或打印数组中的多个元素?

如何在jQuery中单击一次切换多个元素?

如何在PHP中从两个相关的关联数组中打印元素和值

如何在柏树中单击选定元素中的子元素?

如何在JavaScript中隐藏多个元素?

如何在列表中插入多个元素?

使用Angular和Ionic,如何在单击按钮时将元素添加到DOM中

如何在不弹出元素和循环的情况下在 C++ 中打印整个堆栈?

如何在bash打印中打印粗体和大号文本

如何在vue.js中的父元素和子元素之间隔离单击事件处理程序

Laravel formbuilder 如何在元素中获取接受和多个属性

如何在一个选择器jQuery中显示和隐藏多个元素?

如何在python中向xml元素添加多个键和值?

如何在 Python 中打印一行中的列表索引和下一行中的列表元素?

如何在TestCafe中单击未渲染的虚拟元素

如何在WinJS的Repeater元素中绑定单击事件?

如何在span类中单击动态元素

如何在 selenium webdriver python 中单击以下元素

如何在Puppeteer中单击带有文本的元素

如何在Angular 7中检测元素外部的单击?