首页 > 解决方案 > 当id是动态的时如何在html中查找元素?我的目标是找到元素并在其下选择“选项”

问题描述

HTML:

<select id="XYZ_SV_12345" class="clsSelectControl pv" multiple="" size="11" aria-multiselectable="true" aria-invalid="false" style="width: auto;">

这里 id 是动态的,但前几个字符始终相同,即:“XYZ_SV_”是常量,其余数值是动态的。

我尝试使用以下方法查找元素,但没有运气。请帮助我找到元素。

driver.find_element_by_xpath("//*[contains(@id, 'XYZ_SV_']")
driver.find_element_by_css_selector('input[id*="XYZ_SV_"]')
driver.find_element_by_css_selector(".clsSelectControl.pv")

标签: pythonseleniumxpathcss-selectorswebdriverwait

解决方案


这是您应该使用的 xpath。

//select[starts-with(@id,'XYZ_SV_')]

下面是代码。

driver.find_element_by_xpath("//select[starts-with(@id,'XYZ_SV_')]")

截屏: 在此处输入图像描述

如果您想使用 CSS,请检查以下内容。

select[id^='XYZ_SV_']

下面是代码

driver.find_element_by_css_selector("select[id^='XYZ_SV_']")

截屏: 在此处输入图像描述


推荐阅读