我一直在练习使用 Selenium 的 POM 设计方法(使用数据驱动和 testNg 框架);
我最近看到一位 selenium 自动化开发人员使用 POM,脚本中既没有 @FindBy 也没有 PageFactory
在 selenium 脚本中使用“By”时我不明白的内容如下:
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;
}
}
最佳答案
By是 abstract class ,它可以有带有实现的方法,抽象的唯一限制是它不能被实例化,例如调用new By()
it may or may not include abstract methods. Abstract classes cannot be instantiated
您正在调用 name
方法,该方法不是抽象的,返回 By
对象:
public static By name(java.lang.String name)
关于java - 在 POM 中使用 By - Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52346700/