使用Selenium注入唯一的classNames

时间:2013-05-06 16:59:47

标签: javascript selenium webdriver

我正在测试的页面使用很少的id。我所有的定位器都是这些长xpath。我想知道,如果我首先执行一些javascript为每个元素注入唯一的classNames,然后只是通过className定位,会有任何优点或缺点吗?

EDIT 我已经在使用页面对象模型了。

我的问题很简单,通过className定位元素有什么好处,例如"uniqueClass01"而不是像xpath那样定位元素 "/html/body/div[13]/div/div/div/div/div/div/div[7]/div/div/div/div/div/div/div[2]/div/div[2]/div/div/div/div/div/div/div[6]/div/div/div/div/div[2]/a"

我使用jsExecutor为每个元素添加了唯一的类 - 这很简单。我只是想知道这样做是否更好,或者使用上面的xpath。

1 个答案:

答案 0 :(得分:0)

如果您发现在脚本代码中重复定位器(例如长xpath),则表明存在问题。您可以为每个元素注入一个唯一的类名,然后使用该定位器;但是你的脚本代码仍然需要重复新的定位器(唯一的类名)。

我建议使用Page Object model来构建脚本;这样,每个定位器只定义一次。只要定位器只定义一次,无论是短类名还是长xpath都无关紧要;它会让你的脚本更清晰易读。