如何处理自动化测试中的超长定位器?

时间:2012-08-16 14:24:57

标签: selenium automated-tests robotframework

我想知道使用机器人框架和/或硒来处理极长定位器的常用方法是什么?

我说的很长的定位器:

<input id="all00$SPWebExample1$g_bcd023df_3ba6_4f8f_bef3_164383c266aa$ctl00$$HereComesAnotherText1$rblFoundIs" />

显而易见的方法是将它们“隐藏”在资源文件中,这样它们就不会污染测试用例文件。我见过的另一种方法是创建一个静态xml文件,其中包含一个经过测试的网站的完整结构并解析xml文件(如果需要,我可以提供示例)。

有没有更好的方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

解决方案恕我直言,不要使用丑陋的自动生成ID。你的测试最终会变得脆弱,因为如果框架改变了ID生成方法,它们都会破坏。相反,请使用XPath或CSS选择器。

答案 1 :(得分:1)

如果自动生成id,那么将它们存储在这样的长定位器中并不是一个好主意。


而不是:

string superLongLocatorID = "all00$SPWebExample1$g_bcd023df_3ba6_4f8f_bef3_164383c266aa$ctl00$$HereComesAnotherText1$rblFoundIs"

使用:

string xpathLocator = "//input[contains(@id, 'rblFoundIs')]"

XPath版本相当短,并且不像存储完整ID那样容易破解。

如果有多个输入元素包含相同的文本,那么还有其他方法可以缩小结果范围。