2009-05-31 77 views
1

我正在编写硒测试。使用XPath查询html标记

我在那里有一个标签“分配设计器”,紧跟在标签后面的选择框。 不幸的是,选择框有动态ID,我无法通过ID或任何其他属性查询它。

我可以构建XPath查询,该查询返回“文本之后的首选标签”Assign Designer'“?

PS。硒仅支持的XPath 1.0

回答

3

这将是这样的:

//label[text() = 'Assign Designer']/following-sibling::select[1] 

需要注意的是:

  • 的//速记是非常低效的,因为它会导致广泛的文档扫描。如果您可以对标签的位置更具体,我建议您这么做。但是,如果文件很小,这不会成为问题。
  • 因为我对Selenium不太了解,所以我使用了“标签”。如果不是<label>,当然应该使用实际的元素名称。 ;-)
  • 无论何时使用像“following-sibling”这样的轴,一定要包含一个位置谓词(在这种情况下为[1])。这很容易被人遗忘,如果是这样,你的表情可能会产生意想不到的结果。
+0

XPath 1.0规范支持'以下兄弟'吗? – 2009-05-31 19:03:43