0

JQuery 支持$("span[id$='Label1']")允许选择 ASP.NET INamingContainer 生成的 ID 的语法,这些 ID 以“ ct100$... ”为前缀。

我们正在使用 Selenium,并正在寻找一种类似的方式来选择元素,忽略 ASP.NET 生成的前缀。

想法?

4

3 回答 3

0

理论上,您可以使用这样的 XPath 选择器来做到这一点:

//div[ends-with(text(), 'MyControlId')]

但我有一种感觉,你不能在ends-withSelenium 中使用这个函数,因为它不是 XPath 1.0 的一部分。您可能需要像这样更丑陋的东西:

//div[substring(text(), string-length(text()), 11)='MyControlId']

于 2010-12-16T15:34:59.370 回答
0

采用:

//span[@id[substring(.,string-length()-5)='Label1']]
于 2010-12-16T15:49:49.147 回答
0

如果项目在 .Net 4 中,现在可以对动态控件进行静态命名。

在这里阅读http://www.dotnetcurry.com/ShowArticle.aspx?ID=492

如果你有幸以这种方式完成它,会让生活变得更轻松。否则,正确形成的 XPath 将起作用(但测试 IE 的速度非常慢)

干杯,斯特凡

于 2010-12-16T16:06:54.387 回答