You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium自动化测试:如何定位无ID/Name的元素(含图片)

Selenium无ID/Name属性元素定位方案

一、定位"My Leads"跳转链接

你提供的目标链接元素有多个可利用的特征:href="/leads"、包含文本"My Leads"、带有特定SVG图标和class组合。以下是几种可靠的定位方式:

1. 利用文本内容定位(XPath)

适合文本在页面中唯一的场景,直接通过可见文本关联到父级a标签:

# Python示例
my_leads_link = driver.find_element(By.XPATH, "//span[text()='My Leads']/parent::a")
# 简化写法:直接匹配包含该文本的a标签
my_leads_link = driver.find_element(By.XPATH, "//a[contains(., 'My Leads')]")

2. 利用href属性定位(CSS选择器/XPath)

链接的目标路径通常是唯一的,这种定位方式最稳定:

# CSS选择器写法
my_leads_link = driver.find_element(By.CSS_SELECTOR, "a[href='/leads']")
# XPath写法
my_leads_link = driver.find_element(By.XPATH, "//a[@href='/leads']")

3. 结合class和SVG特征定位

如果href存在重复风险,可结合元素class和内部SVG的路径特征精准定位:

# 通过SVG的path路径值匹配,再向上找到父级a标签
my_leads_link = driver.find_element(By.XPATH, "//a[contains(@class, 'text-neutral-400')]//svg/path[@d='M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4']/ancestor::a")

定位完成后,执行点击并验证跳转:

my_leads_link.click()
# 验证跳转后的URL是否符合预期
assert driver.current_url.endswith("/leads")

二、定位无ID/Name的图片跳转元素

对于无标识的图片元素,可根据以下常见特征定位:

1. 利用图片的src/alt属性

如果图片有唯一的src路径或alt描述文本,直接通过属性定位:

# 通过src属性(CSS选择器)
image_element = driver.find_element(By.CSS_SELECTOR, "img[src='/path/to/target-image.png']")
# 通过alt属性(XPath)
image_element = driver.find_element(By.XPATH, "//img[@alt='目标图片的描述文本']")

2. 结合父元素/周围文本定位

如果图片自身属性不唯一,可借助它的父容器或相邻文本元素辅助定位:

# 示例:图片在class为"image-wrapper"的div容器内
image_element = driver.find_element(By.XPATH, "//div[@class='image-wrapper']/img")
# 示例:图片紧邻文本"点击查看详情"的右侧
image_element = driver.find_element(By.XPATH, "//span[text()='点击查看详情']/following-sibling::img")

3. 利用样式特征兜底

如果以上方法都不适用,可结合图片的宽高、class等样式属性定位(仅作为兜底方案):

image_element = driver.find_element(By.CSS_SELECTOR, "img[class='custom-img'][width='150'][height='100']")

定位后执行点击并验证跳转:

image_element.click()
# 验证是否跳转至指定页面
assert driver.current_url == "https://your-target-page.com"

内容的提问来源于stack exchange,提问作者Rajeesha R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 17:53:23