先说结论:selenium官方手册,明确WebElement.find_element 是可以缩小搜索范围的。
但下面的例子的第2条语句似乎并没有得到预期结果:
1、driver.find_element(By.XPATH,'//div[@class="city"]/div[@class="gdp"]')
2、ele.find_element(By.XPATH,'//div[@class="city"]/div[@class="gdp"]')
以上两个语句,获取到的都是整个页面的第一个匹配项。 以上第2个例子之所以不是在容器内搜索,而是在整个页面中搜索,原因在于双斜杠“//”,去掉双斜杠才符合预期。
我的测试页面如下:
<html>
<meta content="text/html; charset=utf-8">
<body>
<div class="country">
<div class="provice">
<div class="city">
<div>广州</div>
<div class="gdp">NO.4</div>
</div>
</div>
XPath精要

本文解析了Selenium中使用XPath表达式时双斜杠的影响,并通过实例展示了如何正确地在已定位的元素范围内查找子元素。
最低0.47元/天 解锁文章
497





