Flanders 发表于 2024-7-29 14:35

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

Python Selenium代码中
WEB页面点击“更多”出现下拉栏后,选择“详情”字样进行点击操作

利用xpath点击代码如下:

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

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




“详情”字样的xpath://*[@id="dropdown-menu-9012"]/div/button/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个选项都长得一样,有方法定位吗{:1_904:}

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

感谢{:1_893:}
用您提供的点击方法解决了,代码如下:
# 等待按钮元素加载
buttons = WebDriverWait(driver, 10).until(
    EC.presence_of_all_elements_located((By.XPATH, "//button"))
)

# 遍历按钮,找到包含"详情"文字的按钮
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

我记得我当时的解决方法,好像是点开了下拉按钮,然后用选项中的文字定位元素
页: [1] 2
查看完整版本: Python Selenium下拉栏xpath值遇到随机数如何进行点击