大家好,请检查我的代码
public class Sample1 extends Sample {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver",
"C:\\Users\\Balaji-PC\\cucumber\\SamplePro\\driver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.facebook.com/");
driver.manage().window().maximize();
Sample s= new Sample1();
WebElement d = s.getUsername();
d.sendKeys("lsmanikandan");
s.getPassword().sendKeys("manikandan");
}
}
请在我的pojo课上检查
public class Sample {
WebDriver driver;
public Sample() {
PageFactory.initElements(driver, this);
}
@FindBy(id = "email")
private WebElement username;
@FindBy(id = "pass")
private WebElement password;
public WebElement getUsername() {
return username;
}
public WebElement getPassword() {
return password;
}
}
请在下面找到例外
org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler)上的org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69)处的线程“ main”中的异常.java:38)com.sun.proxy。$ Proxy4.sendKeys(未知来源)org.test.Sample1.main(Sample1.java:18)
代码中的问题是您没有将驱动程序状态从子类Sample 1传递到基类Sample。
这三点是魔术
在Child类中添加参数化的构造函数-Sample1
公共Sample1(WebDriver驱动程序){超级(驱动程序); }
在父类中添加参数化的构造函数-示例
public Sample(WebDriver driver){PageFactory.initElements(driver,this); System.out.println(“页面工厂已启动”); }
通过传递驱动程序在Parent类中创建到被调用页面工厂的对象。
Sample s = new Sample1(driver);
public class Sample {
WebDriver driver;
public Sample(WebDriver driver) {
PageFactory.initElements(driver, this);
System.out.println("Page Factory started");
}
@FindBy(id = "email")
private WebElement username;
@FindBy(id = "pass")
private WebElement password;
public WebElement getUsername() {
System.out.println(username.getAttribute("data-testid"));
return username;
}
public WebElement getPassword() {
System.out.println(username.getAttribute("data-testid"));
return password;
} }
public class Sample {
WebDriver driver;
public Sample(WebDriver driver) {
PageFactory.initElements(driver, this);
System.out.println("Page Factory started");
}
@FindBy(id = "email")
private WebElement username;
@FindBy(id = "pass")
private WebElement password;
public WebElement getUsername() {
System.out.println(username.getAttribute("data-testid"));
return username;
}
public WebElement getPassword() {
System.out.println(username.getAttribute("data-testid"));
return password;
} }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句