python-3.x - 如何使用 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">
- 该
h4
元素没有文本 - 但是有唯一的类。 - 我需要迭代
li
项目
目前我可以选择h4
元素:
elem = driver.find_element_by_class_name('destination-sitemap__sublist-title RandomVariable')
但我无法访问低级元素。
解决方案
使用以下 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
推荐阅读
- javascript - 笑话:如何为文件中的某些测试撤消全局模拟
- google-cloud-platform - Laravel - 第 60 次请求时 429 请求过多
- amazon-web-services - AWS Cloudformation - 堆栈与 NestedStack
- c++ - Vim 的 `:compiler gcc` 与 `make: ***` 有问题
- python - 如何避免在for循环中打印注释掉的代码
- arrays - 一维阵列中的最小移动算法以匹配另一个阵列的位置
- c# - 将项目添加到只有一个项目大小不同的 wpf 列表框?
- neo4j - Neo4j 中的顺序事件建模
- amazon-web-services - Boto3 向非默认 VPC 中的安全组添加入站规则
- excel - 如何选择工作表上的特定单元格?