将XPath和Selenium以任意文档元素为根

问题描述 投票:0回答:1

Selenium的一个不错的功能是find_elements()和相关方法的范围可以限制到文档中的任何节点。例如,

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path = 'chromedriver.exe')

driver.get("https://www.wikipedia.org/")
driver.find_elements(By.TAG_NAME, "div")

将返回文档中的所有div元素,但

footer = driver.find_element(By.CLASS_NAME, "footer")
footer.find_elements(By.TAG_NAME, "div")

将仅返回页脚中的那些div元素。使用By.XPATH查找元素时,是否可以获取类似的功能?我问是因为footer.find_elements(By.XPATH, "//div")返回文档中的所有div元素-不只是页脚中的那些,这就是我想要的。

要清楚:我知道如何构造XPath语句以仅获取页脚中的div元素。但是我想知道是否可以从任意节点开始,例如上例中的footer,然后使用非常简单的语法(例如footer.find_elements(By.XPATH, "//div"))仅获取页脚中的那些div元素。 >

Selenium的一个不错的功能是find_elements()和相关方法的范围可以限制在文档中的任何节点上。例如,从selenium导入webdriver从selenium ....

python selenium selenium-webdriver dom xpath
1个回答
0
投票

我只能使用footer.find_elements(By.XPATH, ".//div")在页脚中找到那些div。

© www.soinside.com 2019 - 2024. All rights reserved.