簡體   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