我正在尝试采取措施来学习页面对象模型(POM)。这是我的页面类:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
public class ClickPage {
@FindBy(how=How.XPATH, using="/html/body/div[1]/div/div/div/div/h3[2]/a")
public WebElement link;
public ClickPage(WebDriver driver){
PageFactory.initElements(driver, this);
}
public void navigator(){
link.click();
}
}
但是在构造函数中它抱怨
Duplicate modifier for the method ClickPage in type ClickPage
答案 0 :(得分:0)
以下是您的问题的答案:
从您的示例代码块中可以看出,您正试图在工作中使用PageFactory
通过POM。调用ClickPage
类时,页面上的元素已经初始化。接下来,您将再次尝试通过PageFactory.initElements(driver, this);
初始化元素。因此错误 Duplicate modifier for the method ClickPage in type ClickPage
。
这里有一些事情需要解决如下:
ClickPage
班级将如下所示:ClickPage 类:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;
public class ClickPage {
WebDriver driver;
//constructor
public LoginPageNew(WebDriver ClickPageDriver)
{
this.driver=loginDriver;
}
@FindBy(how=How.XPATH, using="/html/body/div[1]/div/div/div/div/h3[2]/a")
public WebElement link;
public void navigator(){
link.click();
}
}
ClickPage
页面上的变量。因此,从您的测试类VerifyValidLogin
开始,我们将调用initElements()
方法,如下所示:VerifyValidLogin 类:
@Test (priority=0)
public void click_a_page()
{
//Created Page Object using Page Factory
ClickPage click_page = PageFactory.initElements(driver, ClickPage.class);
//Call the method
click_page.navigator();
}
如果这回答你的问题,请告诉我。