我可以告诉Selenium以DOM模式而不是element ID模式录制吗?

我可以告诉Selenium以DOM模式而不是element ID模式录制吗?,selenium,selenium-ide,Selenium,Selenium Ide,我一直在开发环境中使用Selenium。当我在测试环境中尝试一些记录的测试时,我发现元素具有不同的ID(它们是由web框架生成的)。我可以手动更改测试以使用 document.forms[2].elements[3] 而不是按id,如下所示: ellaMform:j_id77 我正在寻找一种方法,告诉selenium记录控件的dom:index值,以便DEV和TEST之间的测试相同 关于SO的类似问题指向一个插件,但这并不是我所需要的: IDE已经为几种DOM样式提供了定位生成器(例如,DO

我一直在开发环境中使用Selenium。当我在测试环境中尝试一些记录的测试时,我发现元素具有不同的ID(它们是由web框架生成的)。我可以手动更改测试以使用

document.forms[2].elements[3]
而不是按id,如下所示:

ellaMform:j_id77
我正在寻找一种方法,告诉selenium记录控件的dom:index值,以便DEV和TEST之间的测试相同

关于SO的类似问题指向一个插件,但这并不是我所需要的:

IDE已经为几种DOM样式提供了定位生成器(例如,
DOM:index
,它与您的模型相匹配,或者
DOM:name
,它不太面向位置)。默认情况下,它们的优先级低于ID定位器,但您可以选择录制测试时要使用的定位器。

解决此类问题的公认方法是使用页面对象模式手动编写测试。如果你有可能,试着尝试一下。谢谢。手动执行此操作没有问题,但我认为如果可以在DOM模式下录制,可能会节省时间。这不是我问题的答案,但我的问题实际上是自动生成的元素ID。一旦我在代码中给了这些元素适当的ID,ID就可以在开发环境和测试环境之间很好地传输。页面对象不能解决mcgyver5的问题,它们只是将其集中化。他有一个难以自动化的应用程序,而不是糟糕的测试。“当我记录测试时,你可以选择哪个定位器”,这意味着手动,通过使用目标下拉菜单并选择dom:index,对吗?没有办法更改默认值?是和否。是,您可以手动选择。不,您可以更改默认值,尽管它不是微不足道的。定位器的选择顺序在IDE代码中LocatorBuilders.js的最后一行中定义。您可以重置LocatorBuilders.order以选择自己的首选项。有关当前源代码,请参阅。最近有人指出,该源文件的最后一行有意复制到您的user-extensions.js文件并在其中进行修改。这让它变得简单多了。它是UI的一部分已经有一段时间了——选项|选项|定位器生成器。