Ausgabe
Ich habe versucht, meine alten, mit Selen geübten Skripte auszuführen, die vor einem Monat einwandfrei funktionierten und jetzt Fehler verursachen, insbesondere beim Konstruktor
PageFactory.initElements(driver, this);
Irgendein Rat?
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import com.crm.qa.base.TestBase;
public class LoginPage extends TestBase {
@FindBy(name="username")`enter code here`
WebElement Username;
@FindBy(name="password")
WebElement Password;
@FindBy(xpath="//div[@class='input-group-btn']//input")
WebElement LoginBtn;
@FindBy(xpath="//a[contains(text(),'Sign Up')]")
WebElement SignUPLink;
@FindBy(xpath="//a[@class='navbar-brand']//img")
WebElement CRMPROLogo;
public LoginPage() {
PageFactory.initElements(driver, this);
}
//#Actions
public String ValidateLoginPageTitle() {
return driver.getTitle();
}
public boolean ValidateCRMlogoImg() {
return CRMPROLogo.isEnabled();
}
public HomePage ValidateLoginTest(String un, String pwd) throws InterruptedException {
Username.sendKeys(un);
Password.sendKeys(pwd);
LoginBtn.click();
Thread.sleep(3000);
return new HomePage();
}
}
Stacktrace
FAILED CONFIGURATION: @BeforeMethod SetUp
java.lang.NoSuchMethodError: 'void org.openqa.selenium.support.PageFactory.initElements(org.openqa.selenium.SearchContext, java.lang.Object)'
at com.crm.qa.pages.LoginPage.<init>(LoginPage.java:29)
at com.crm.qa.testcases.LoginPageTest.SetUp(LoginPageTest.java:24)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:577)
Lösung
NoSuchMethodError bedeutet normalerweise, dass Sie mit einer Version kompiliert haben, aber mit einer anderen (normalerweise älteren) Version laufen, daher die Ausnahme.
Die Lösung besteht darin, sicherzustellen, dass Sie dieselbe Version von Java, Selenium und allen anderen Bibliotheken von Drittanbietern entwickeln und ausführen, die Sie auch verwenden
Beantwortet von – ControlAltDel
Antwort geprüft von – Gilberto Lyons (FixError Admin)