我正在尝试将 ID 设置为 SelectItem(更准确地说是其选项列表),以便能够在 Selenium Grid 2 测试期间识别它并且找不到任何方法。我需要的是找到列表并在上面选择(单击)一个值。
尝试和失败的意图:
- 用于此目的的常用方法,
setID()
在ensureDebugId()
SelectItem 中不可用 - 该方法
setName()
不会在生成的 HTML 中留下任何痕迹 在包含 SelectItem 的表单上找不到选项列表。SelectItem 由单独的元素组成:
- 标签(标题)
- textInput(选定的值)
- 选择器(显示选项下拉列表的按钮)
- pickList(选项下拉列表)
如果您为包含此组件的表单设置一个 ID 以便通过它进行本地化,
className
您将无法发现pickList,因为它是在单击选择器并且生成的代码被放置在表单边界之外时生成的,因此您可以在表格中找不到它。可以在整个文档中找到它,但如果有多个列表,则无法知道哪个列表属于哪个 SelectItem。
欢迎任何建议。先感谢您。
更新:我想澄清一些事情以避免误解:我知道对于不同的 Selenium 工具和版本以及将它与 Smart GWT 一起使用的最佳方式有很多不同的意见。这个问题没有进入这些讨论。它仅限于问题标题中指示的边界:Selenium Grid 2 tests with WebDriver。
一些背景知识:在编码我们的 GWT 组件时,我们会用测试方法识别其中的一些(小心,不要重复)setID()
,我们并不关心这些标识符可能会在生成的 HTML 中被读取。(由于某种原因,使用ensureDebugId()
扭曲了我们的观点。此外,Isomorphic 的人建议忘记它,无论如何。)但setID()
不适用于FormItem
,即我们无法将 ID 设置为SelectItem
(从 扩展FormItem
)以便编写第一个测试非空选项将被选中。