我一直在针对硒使用POM设计方法(具有数据驱动和testNg框架)进行练习;
最近,我看到一个使用POM的硒自动化开发人员,该脚本中既没有@FindBy也没有PageFactory
我在硒脚本中使用“按”不了解的内容如下:
By element_name = By.id("String");
'By'是一个抽象类(如selenium-java api文档中所述),id,classname,name,xpath等方法是静态方法;
基于这些事实,如何直接实现抽象类和静态方法?
下面是我正在谈论的代码。
public TrialLoginPage(WebDriver driver, Properties prop) {
super(driver, prop);
}
By name = By.name("username");
By password = By.name("password");
By submit = By.xpath("//input[@type='submit']");
public String getTitle() {
String title = driver.getTitle();
return title;
}
public WebElement setUserName() {
WebElement element = driver.findElement(name);
return element;
}
public WebElement setPassword() {
WebElement element = driver.findElement(password);
return element;
}
public WebElement setSubmit() {
WebElement login = driver.findElement(submit);
return login;
}
public String driverStatus() {
String str = driver.toString();
return str;
}
}
答案 0 :(得分:2)
By是abstract class,它可以具有实现的方法,抽象的唯一限制是它不能被实例化,例如呼叫new By()
它可能包含也可能不包含抽象方法。抽象类无法实例化
您正在调用name
方法,该方法不是返回By
对象的抽象方法:
public static By name(java.lang.String name)