JQuery 支持$("span[id$='Label1']")
允许选择 ASP.NET INamingContainer 生成的 ID 的语法,这些 ID 以“ ct100$... ”为前缀。
我们正在使用 Selenium,并正在寻找一种类似的方式来选择元素,忽略 ASP.NET 生成的前缀。
想法?
JQuery 支持$("span[id$='Label1']")
允许选择 ASP.NET INamingContainer 生成的 ID 的语法,这些 ID 以“ ct100$... ”为前缀。
我们正在使用 Selenium,并正在寻找一种类似的方式来选择元素,忽略 ASP.NET 生成的前缀。
想法?
理论上,您可以使用这样的 XPath 选择器来做到这一点:
//div[ends-with(text(), 'MyControlId')]
但我有一种感觉,你不能在ends-with
Selenium 中使用这个函数,因为它不是 XPath 1.0 的一部分。您可能需要像这样更丑陋的东西:
//div[substring(text(), string-length(text()), 11)='MyControlId']
采用:
//span[@id[substring(.,string-length()-5)='Label1']]
如果项目在 .Net 4 中,现在可以对动态控件进行静态命名。
在这里阅读http://www.dotnetcurry.com/ShowArticle.aspx?ID=492
如果你有幸以这种方式完成它,会让生活变得更轻松。否则,正确形成的 XPath 将起作用(但测试 IE 的速度非常慢)
干杯,斯特凡