Java 在selenium自动化测试框架中保存对象存储库的最佳方法是什么
我的xpath值是动态的-示例- //label[text()=$USERNAME$]-我将在测试中用值“admin1”替换$USERNAME$。我可以点击管理员,它需要我编辑页面 需要考虑执行内存时间、可靠性和测试性能的解决方案 选择权 1.在每个页面类中将其作为私有静态最终字符串,并为每个对象使用getter方法Java 在selenium自动化测试框架中保存对象存储库的最佳方法是什么,java,selenium,xpath,webdriver,Java,Selenium,Xpath,Webdriver,我的xpath值是动态的-示例- //label[text()=$USERNAME$]-我将在测试中用值“admin1”替换$USERNAME$。我可以点击管理员,它需要我编辑页面 需要考虑执行内存时间、可靠性和测试性能的解决方案 选择权 1.在每个页面类中将其作为私有静态最终字符串,并为每个对象使用getter方法 将其作为键值对保存在属性文件中加载文件并在需要时获取值。(为每个对象创建一个带有静态gettermethods的静态类,这些对象调用一个方法来加载properties实例(prop
您可以将所有对象定位器保存在Excel或JSON文件中。 我将所有XPath保存在Excel中,并使用以下列:
./*[text()='LOCATOR\u VALUE\u READ\u FROM\u REPOSITORY']您可以将所有对象定位器保存在Excel或JSON文件中。 我将所有XPath保存在Excel中,并使用以下列:
./*[text()='LOCATOR\u VALUE\u READ\u FROM\u REPOSITORY']您可以创建私有方法“private String getLocator(String userName)”@VitaliyMoskalyuk上述1和2选项都使用了您提到的方法签名。我的问题是将其保留为String(我的xpath值)或者将其保存在属性文件中,哪种技术在内存、执行时间等方面是有效的解决方案。我完全不使用动态XPath,因为正如您所提到的,@FindBy不能使用它们。我同意它们可能非常方便,但我更喜欢使用pagefactory和FindBy的页面对象模型(编辑让我删除了额外的@),这是我必须付出的代价。总有不止一种方法(嗯,几乎总是)为了访问web元素,我寻找了另一种方法。我发现我的测试使用POM比以前更快、更健壮。@BillHileman的意思是为每个用户创建findby并在测试中使用它们?我的理解正确吗?不,我认为您应该使用xpath通过它以前的同级来访问它,或者如果这是一个使用列表的话rs创建一个元素数组并进行搜索您可以创建私有方法“private String getLocator(String userName)”@VitaliyMoskalyuk上述1和2个选项都使用了您提到的方法签名。我的问题是将其保留为String(我的xpath值)或者将其保存在属性文件中,哪种技术在内存、执行时间等方面是有效的解决方案。我完全不使用动态XPath,因为正如您所提到的,@FindBy不能使用它们。我同意它们可能非常方便,但我更喜欢使用pagefactory和FindBy的页面对象模型(编辑让我删除了额外的@),这是我必须付出的代价。总有不止一种方法(嗯,几乎总是)为了访问web元素,我寻找了另一种方法。我发现我的测试使用POM比以前更快、更健壮。@BillHileman的意思是为每个用户创建findby并在测试中使用它们?我的理解正确吗?不,我认为您应该使用xpath通过它以前的同级来访问它,或者如果这是一个使用列表的话rs创建一个元素数组并以这种方式进行搜索