吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 506|回复: 15
收起左侧

[求助] Python Selenium下拉栏xpath值遇到随机数如何进行点击

[复制链接]
Flanders 发表于 2024-7-29 14:35
Python Selenium代码中
WEB页面点击“更多”出现下拉栏后,选择“详情”字样进行点击操作

利用xpath点击代码如下:

self.driver.find_element_by_xpath('//*[@id="dropdown-menu-9012"]/div[1]/button[2]/span').click()

中 9012这个menu值,页面每次刷新获取xpath时都会变,怎么获取并点击这种下拉栏中的“详情选项”?

微信截图_20240729142128.png


“详情”字样的xpath://*[@id="dropdown-menu-9012"]/div[1]/button[2]/span

“详情”字样的selector:#dropdown-menu-9012 > div.more-btn > button:nth-child(2) > span

每次刷新页面9012这个值会变,求大神帮忙看看有没有点击这种随机xpath的方法{:1_893:}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

liuhaigang12 发表于 2024-7-29 14:43
id标签是会变的 使用class标签
uuwatch 发表于 2024-7-29 14:46
 楼主| Flanders 发表于 2024-7-29 14:50
liuhaigang12 发表于 2024-7-29 14:43
id标签是会变的 使用class标签

<button data-v-6145e6ef="" type="button" class="el-button el-button--text el-button--medium" data-v-104a9d34=""><!----><!----><span>详情</span></button> 父级标签4个选项都长得一样,有方法定位吗
minshenyao 发表于 2024-7-29 14:51
可以在上一层遍历页面元素,然后使用get_attribute函数获取id
liuhaigang12 发表于 2024-7-29 14:54
Flanders 发表于 2024-7-29 14:50
详情 父级标签4个选项都长得一样,有方法定位吗

这不是有class标签吗 自己写xpath  别复制粘贴 一般复制都是复制的id标签的
liuhaigang12 发表于 2024-7-29 14:55
把id换成class 把原来的值换成el-button el-button--text el-button--medium" data-v-104a9d34,确定这个值是不是唯一性
 楼主| Flanders 发表于 2024-7-29 14:58
minshenyao 发表于 2024-7-29 14:51
可以在上一层遍历页面元素,然后使用get_attribute函数获取id

感谢
用您提供的点击方法解决了,代码如下:
# 等待按钮元素加载
buttons = WebDriverWait(driver, 10).until(
    EC.presence_of_all_elements_located((By.XPATH, "//button[contains(@class, 'el-button--text')]"))
)

# 遍历按钮,找到包含"详情"文字的按钮
target_button = None
for button in buttons:
    span = button.find_element_by_tag_name('span')
    if span.text == '详情':
        target_button = button
        break

if target_button:
    # 获取按钮的 id 属性
    button_id = target_button.get_attribute('id')
    print(f'Button ID: {button_id}')
   
    # 点击按钮
    target_button.click()
else:
    print("没有找到包含'详情'的按钮")
 楼主| Flanders 发表于 2024-7-29 15:00
liuhaigang12 发表于 2024-7-29 14:55
把id换成class 把原来的值换成el-button el-button--text el-button--medium" data-v-104a9d34,确定这个值 ...

感谢~get_attribute('id')解决了
cbq3747620 发表于 2024-7-29 15:01
我记得我当时的解决方法,好像是点开了下拉按钮,然后用选项中的文字定位元素
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表