Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每次加载页面时,产品下拉列表都有不同的ID_Javascript_Html_Selenium - Fatal编程技术网

Javascript 每次加载页面时,产品下拉列表都有不同的ID

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

我正在使用Selenium IDE为web应用程序执行一些重复的表单填充任务。这个过程的一部分包括选择一组产品,然后从该组中选择一些基础产品。例如:我想看看DIY和五金部分下的所有绘画和壁纸产品。在Selenium中,它正确识别并选择DIY和硬件部分。这将生成一组新的下拉列表,我应该可以在其中选择“画画”和“墙纸”。Selenium在此给出了一个错误:

[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_"]
  • 选择引发错误的命令行
  • 单击目标下拉列表并选择任何其他定位器,如相对xpath或其他不包含该随机序列的定位器
  • 重新运行测试用例
    @弗拉德,你几乎是对的,但你不能参考身份证,显然是这样的。引用ID时,它必须完全匹配。但是,您可以使用CSS来使用前缀规则

    我可以通过以下方法绕过它:

    css=select[id^="selectgroup_RT_PAINT_"]
    
    谢谢你的意见