Javascript 每次加载页面时,产品下拉列表都有不同的ID
我正在使用Selenium IDE为web应用程序执行一些重复的表单填充任务。这个过程的一部分包括选择一组产品,然后从该组中选择一些基础产品。例如:我想看看DIY和五金部分下的所有绘画和壁纸产品。在Selenium中,它正确识别并选择DIY和硬件部分。这将生成一组新的下拉列表,我应该可以在其中选择“画画”和“墙纸”。Selenium在此给出了一个错误:Javascript 每次加载页面时,产品下拉列表都有不同的ID,javascript,html,selenium,Javascript,Html,Selenium,我正在使用Selenium IDE为web应用程序执行一些重复的表单填充任务。这个过程的一部分包括选择一组产品,然后从该组中选择一些基础产品。例如:我想看看DIY和五金部分下的所有绘画和壁纸产品。在Selenium中,它正确识别并选择DIY和硬件部分。这将生成一组新的下拉列表,我应该可以在其中选择“画画”和“墙纸”。Selenium在此给出了一个错误: [error] Element id=selectgroup_RT_PAINT_ca9368dd-ddc0-4ade-a17f-f0e5a56e
[error] Element id=selectgroup_RT_PAINT_ca9368dd-ddc0-4ade-a17f-f0e5a56e5e23_1 not found
问题在于RT\u PAINT
之后的字母和数字序列。每次生成下拉列表时,这似乎是一个唯一的值,即使它们始终包含相同的值。有办法解决这个问题吗
这是Selenium任务的HTML:
<tr>
<td>select</td>
<td>id=selectgroup_RT_PAINT_ca9368dd-ddc0-4ade-a17f-f0e5a56e5e23_1</td>
<td>label=Dulux</td>
</tr>
选择
id=selectgroup\u RT\u PAINT\u ca9368dd-ddc0-4ade-a17f-f0e5a56e5e23\u 1
标签=多乐士
我是Selenium新手,所以我甚至不知道该尝试什么,因此没有代码示例。有没有什么办法可以改成id,比如…
而不是id=
提前感谢大家尝试查找部分id
id^='selectgroup_RT_PAINT_'
有关更多示例,请参见此链接:如果您使用的是selenium IDE,只需录制并播放您想要的内容,然后执行以下操作:
css=select[id^="selectgroup_RT_PAINT_"]
@弗拉德,你几乎是对的,但你不能参考身份证,显然是这样的。引用ID时,它必须完全匹配。但是,您可以使用CSS来使用前缀规则 我可以通过以下方法绕过它:
css=select[id^="selectgroup_RT_PAINT_"]
谢谢你的意见