首页 > 解决方案 > 如何使用 Selenium webdriver 定位元素 - 市场 h4 为空白

问题描述

我想使用 Python Selenium Chromedriver 从以下 HTML 中找到一个元素:

<h4 class="destination-sitemap__sublist-title RandomVariable"></h4>
<div class="destination-sitemap__RandomContent">
  <ul class="destination-sitemap_RandomSulist">
    <li class="destination-sitemap_RandomItem">
  1. h4元素没有文本 - 但是有唯一的类。
  2. 我需要迭代li项目

目前我可以选择h4元素:

elem = driver.find_element_by_class_name('destination-sitemap__sublist-title RandomVariable')

但我无法访问低级元素。

标签: python-3.xselenium-webdriverxpath

解决方案


使用以下 xpath 来识别元素。

elements=WebDriverWait(driver,20).until(EC.visibility_of_all_elements_located((By.XPATH,"//h4[@class='destination-sitemap__sublist-title RandomVariable']/following::div[@class='destination-sitemap__RandomContent']/ul//li")))
for ele in elements:
  print(ele.text)

你可以诱导WebDriverWait

elements=WebDriverWait(driver,20).until(EC.visibility_of_all_elements_located((By.XPATH,"//h4[@class='destination-sitemap__sublist-title RandomVariable']/following::div[@class='destination-sitemap__RandomContent']/ul//li")))
for ele in elements:
   print(ele.text)

执行WebDriverWait需要以下导入。

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

推荐阅读