繁体   English   中英

如何遍历不同的标签名称 (h3) 并使用 selenium 和 python 比较它们的文本?

[英]How do I Iterate through different tag names (h3) and compare their text using selenium and python?

我的目标是按名称查找产品列表,然后单击它。 目前,我想使用 for 循环遍历所有带有标签名称 h3 的文本,并在文本等于我想要的产品时结束循环。 现在很明显,我的代码当前找到了第一个列表,然后遍历字符串中的字符。 我想要它做的是遍历不同的元素并提取它们的文本。 我将不胜感激任何建议,并会迅速回答任何问题。 谢谢!

代码:

from selenium import webdriver

PATH = "/Users/devinhadley/Desktop/chromedriver"
driver = webdriver.Chrome(PATH)
driver.set_window_size(200, 200)
driver.get("https://shop-usa.palaceskateboards.com/")

elements = []
elements = driver.find_element_by_tag_name("h3").text


for element in elements:
    print(element)
    if element = "PERTEX PACKET JACKET GREY"
        print("Done")
         

尝试这个:

from selenium import webdriver

PATH = "/Users/devinhadley/Desktop/chromedriver"
driver = webdriver.Chrome(PATH)
driver.set_window_size(200, 200)
driver.get("https://shop-usa.palaceskateboards.com/")

elements = driver.find_elements_by_tag_name("h3")

for element in elements:
    if element.text == "PERTEX PACKET JACKET GREY":
          print(element)

更新:我打开网页,发现find_elements_by_tag_name("h3")不起作用。 以下将做:

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

PATH = "/Users/devinhadley/Desktop/chromedriver"
driver = webdriver.Chrome(PATH)
driver.set_window_size(200, 200)
driver.get("https://shop-usa.palaceskateboards.com/")

elements=WebDriverWait(driver, 2).until(EC.visibility_of_all_elements_located((By.XPATH, '//div[@data-alpha]')))

for element in elements:
    
    if element.get_attribute('data-alpha') == "PERTEX PACKET JACKET GREY":
    
          print(element.get_attribute('data-alpha'))
          element.click()

如果要单击特定元素,可以在 for 循环或elements[0].click() element.click() ) ,例如,如果要单击第一个元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM