我想知道使用机器人框架和/或硒来处理极长定位器的常用方法是什么?
我说的很长的定位器:
<input id="all00$SPWebExample1$g_bcd023df_3ba6_4f8f_bef3_164383c266aa$ctl00$$HereComesAnotherText1$rblFoundIs" />
显而易见的方法是将它们“隐藏”在资源文件中,这样它们就不会污染测试用例文件。我见过的另一种方法是创建一个静态xml文件,其中包含一个经过测试的网站的完整结构并解析xml文件(如果需要,我可以提供示例)。
有没有更好的方法来做到这一点?
答案 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那样容易破解。
如果有多个输入元素包含相同的文本,那么还有其他方法可以缩小结果范围。