0

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

[error] Element id=selectgroup_RT_PAINT_ca9368dd-ddc0-4ade-a17f-f0e5a56e5e23_1 not found

问题在于每次生成下拉列表时,这似乎是一个唯一值之后的字母和数字序列RT_PAINT,即使它们始终包含相同的值。有没有解决的办法?

这是 Selenium 任务的 HTML:

<tr>
    <td>select</td>
    <td>id=selectgroup_RT_PAINT_ca9368dd-ddc0-4ade-a17f-f0e5a56e5e23_1</td>
    <td>label=Dulux</td>
</tr>

我是 Selenium 的新手,所以我什至不知道该尝试什么,因此没有代码示例。有没有办法改成id like...而不是id=

提前谢谢大家

4

3 回答 3

1

尝试查找部分 id。

id^='selectgroup_RT_PAINT_'

有关更多示例,请参见此链接:http: //sauceio.com/index.php/2010/01/selenium-totw-css-selectors-in-selenium-demystified/

于 2013-08-26T16:21:57.803 回答
0

如果您使用的是 selenium IDE,只需录制和播放您想要的任何内容,然后执行以下操作:

  1. 选择引发错误的命令行
  2. 单击目标下拉列表并选择任何其他定位器,例如相对 xpath 或其他不包含该随机序列的定位器。
  3. 重新运行测试用例。
于 2013-08-26T19:50:48.267 回答
0

@Vlad 你几乎是对的,但显然你不能像那样引用 ID。引用 ID 时,必须完全匹配。但是,您可以使用 CSS 来使用前缀规则。

我能够使用以下方法解决它:

css=select[id^="selectgroup_RT_PAINT_"]

感谢您的输入

于 2013-08-27T11:01:14.397 回答