selenium python选中列表中的某一项

在使用Selenium和Python进行网页操作时,遇到一个列表,其name、class和id值都是动态变化的,只能通过text值来定位。文中介绍了两种方法:一是通过for循环遍历所有`<span class="tree-title">`元素并点击包含目标text的选项;二是利用XPath定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做列表选择的时候发现列表中只有一个text值是独立的可以用来定位,虽然含有name、class和id的值,但都是动态的,会变化,不能使用这些值定位。

<span style="font-size:18px;">    <ul id="Tree" class="easyui-tree tree">
        <li>
            <ul style="display:block">
                <li>
                    <div id="tree_6" class="tree-node">
                        <span class="tree-indent"></span>
                        <span class="tree-indent"></span>
                        <span class="tree-icon"></span>
                        <span class="tree-title">人事部</span>
                    </div>
                 </li>
                 <li>
                     <div id="tree_9" class="tree-node">
                         <span class="tree-indent"></span>
                         <span class="tree-indent"></span>
                         <span class="tree-icon"></span>
                         <span class="tree-title">销售部</span>
                     </div>
                 </li>
	     </ul>
        </li>
    </ul></span>

第一种方法,比较笨的方法

所以使用了for循环来获取列表中text的值,然后来定位

先定位所有<span class="tree-title">:我是用的是css定位:xxs=ff.find_elements_by_css_selector("span.tree-title")

然后利用for 循环取得每一个<span class="tree-title">,并判断是否包含列表中的text,若包含,则点击该选项
 

xxs=ff.find_elements_by_css_selector("span.tree-title")
for xx in xxs:
    if "人事部" in xx.text:
        xx.click()

第二种方法,使用xpath定位:

driver.find_element_by_xpath("//li/div/span[contains(text(),'销售部')]")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值