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 ....
我只能使用footer.find_elements(By.XPATH, ".//div")
在页脚中找到那些div。