首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Selenium/Python查找和比较样式属性的文本?

如何使用Selenium/Python查找和比较样式属性的文本?
EN

Stack Overflow用户
提问于 2021-07-08 19:37:20
回答 1查看 402关注 0票数 1

对不起,如果这个问题措辞怪异,我刚刚开始使用Selenium。我想做一个程序,让人知道,当某些口味的某些蒸气几乎是缺货的批发网站。到目前为止,我的程序非常简单,它将通过特定蒸气的url并从表中打印出显示不同口味的蒸气及其库存的文本。

但是,我想检查库存量下的文本(剩下的蒸气数)并打印“(这种特殊的蒸汽味)几乎是缺货!”如果数字低于10,这是目前为止的代码:

代码语言:javascript
运行
复制
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
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)

driver.get("https://safagoods.com/vape-shop/disposable-vape-devices/huge-disposables")


element = driver.find_element_by_xpath("//*[@id='input-option2231']").text
print(element)
driver.close()

有小费吗?我不打算用网站上的每一个蒸气来做这件事,只是非常受欢迎的那些,这样使用它的人就可以运行这个程序,并且知道他们应该先订购什么,什么是他们可以等待订购的。谢谢你们。

EN

Stack Overflow用户

回答已采纳

发布于 2021-07-08 20:22:13

作为一种可能的解决方案,您可以检查该值是否小于x,然后将其追加到列表中。我的解决方案会给您打印一个金额小于20的列表。

溶液

代码语言:javascript
运行
复制
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/huge-disposables")
wait = WebDriverWait(driver, 15)
table = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".table.table-bordered tr[style='background: #eeeeee;']")))
data = []
rows = driver.find_elements_by_css_selector(".table.table-bordered tr[style='background: #eeeeee;']")
for row in rows:
    #qty = row.find_element_by_xpath("./td[1]").text
    stock = row.find_element_by_xpath("./td[2]").text
    name = row.find_element_by_xpath("./td[3]").text
    if int(stock) < 20:
        data.append([stock, name])
print(*data, sep='\n')

输出:

代码语言:javascript
运行
复制
['17', 'Banana Ice (SKU: HUGE-BI )']
['17', 'Lush Ice (SKU: HUGE-LI )']

您还可以在没有括号的情况下打印它:

代码语言:javascript
运行
复制
for x in data:
    print(' '.join(x))

这将给出输出:

代码语言:javascript
运行
复制
17 Banana Ice (SKU: HUGE-BI )
17 Lush Ice (SKU: HUGE-LI )
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68307733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档