WebElement.find_element + xpath + 双斜杠// 的巨坑

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

先说结论: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>
 
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值