SeleniumWebDriver项目(Java)的体系结构(如文件结构),易于维护且不使用任何构建工具
谁能为易于维护的SeleniumWebDriver项目(Java)推荐最佳体系结构。虽然有一些设计模式,如页面对象等,但我想知道哪一种是最好的,即目前专业项目中使用的架构或框架 与以下项目类似:SeleniumWebDriver项目(Java)的体系结构(如文件结构),易于维护且不使用任何构建工具,java,selenium,selenium-webdriver,open-source,pageobjects,Java,Selenium,Selenium Webdriver,Open Source,Pageobjects,谁能为易于维护的SeleniumWebDriver项目(Java)推荐最佳体系结构。虽然有一些设计模式,如页面对象等,但我想知道哪一种是最好的,即目前专业项目中使用的架构或框架 与以下项目类似: 自定义报告已完成 很容易处理定位器中的更改 不存在重复代码(与页面对象方法类似) 在检查或断言值或条件时遵循一些标准 我们学到的东西很少 1.使用页面对象删除特定于应用程序的冗余代码 设计时请记住,不必将每个页面映射到类,您可以在单个类上映射一组页面。如果页面提供的交互很少,请不要创建单独的类。 2.将
我们学到的东西很少
1.使用页面对象删除特定于应用程序的冗余代码
设计时请记住,不必将每个页面映射到类,您可以在单个类上映射一组页面。如果页面提供的交互很少,请不要创建单独的类。
2.将动态/变化的事物放在一边
我们在属性文件中保留定位器(类型和值),以便以后可以更改它们
像 并编写了查找元素的通用方法
* Method to retrieve element
* @param identifier to locate element
* @param expression value
* @return WebElement
*/
public WebElement getElement(Identifier identifier, String expression) {
By byElement = null;
switch (identifier) {
case xpath: {
byElement = By.xpath(expression);
break;
}
case id: {
byElement = By.id(expression);
break;
}
case name: {
byElement = By.name(expression);
break;
}
case classname: {
byElement = By.className(expression);
break;
}
case css: {
byElement = By.cssSelector(expression);
break;
}
case linktext: {
byElement = By.linkText(expression);
break;
}
case paritallinktext: {
byElement = By.partialLinkText(expression);
break;
}
case tagname: {
byElement = By.tagName(expression);
break;
}
}
WebElement query = driver.findElement(byElement);
return query;
}
三,。使用可重用方法减少特定于Selenium的冗余代码我们已经为频繁使用的Selenium任务编写了方法
* Method to check if alert is present
* @return True/False
*/
public boolean isAlertPresent() {
boolean isPresent = true;
try {
driver.switchTo().alert();
} catch (NoAlertPresentException e) {
isPresent = false;
}
return isPresent;
}
我们学到的东西很少
1.使用页面对象删除特定于应用程序的冗余代码
设计时请记住,不必将每个页面映射到类,您可以在单个类上映射一组页面。如果页面提供的交互很少,请不要创建单独的类。
2.将动态/变化的事物放在一边
我们在属性文件中保留定位器(类型和值),以便以后可以更改它们
像 并编写了查找元素的通用方法
* Method to retrieve element
* @param identifier to locate element
* @param expression value
* @return WebElement
*/
public WebElement getElement(Identifier identifier, String expression) {
By byElement = null;
switch (identifier) {
case xpath: {
byElement = By.xpath(expression);
break;
}
case id: {
byElement = By.id(expression);
break;
}
case name: {
byElement = By.name(expression);
break;
}
case classname: {
byElement = By.className(expression);
break;
}
case css: {
byElement = By.cssSelector(expression);
break;
}
case linktext: {
byElement = By.linkText(expression);
break;
}
case paritallinktext: {
byElement = By.partialLinkText(expression);
break;
}
case tagname: {
byElement = By.tagName(expression);
break;
}
}
WebElement query = driver.findElement(byElement);
return query;
}
三,。使用可重用方法减少特定于Selenium的冗余代码我们已经为频繁使用的Selenium任务编写了方法
* Method to check if alert is present
* @return True/False
*/
public boolean isAlertPresent() {
boolean isPresent = true;
try {
driver.switchTo().alert();
} catch (NoAlertPresentException e) {
isPresent = false;
}
return isPresent;
}
有各种各样的框架,包括一些公司使用的项目,包括大联盟游戏。它有点简单,因为它是为像您这样想要定制解决方案的人设计的,但它具有当前的编程模式,如流畅性和内联验证。尽管这个项目特别不符合您对页面对象模式、自定义报告和构建工具的要求。同样,它应该是根据您的需要定制的。有各种各样的框架,包括一些公司使用的项目,包括大联盟游戏。它有点简单,因为它是为像您这样想要定制解决方案的人设计的,但它具有当前的编程模式,如流畅性和内联验证。尽管这个项目特别不符合您对页面对象模式、自定义报告和构建工具的要求。同样,它应该是根据您的需要定制的。