Ich versuche eine Website mit verschiedenen metrischen Systemen zu automatisieren. Die Anwendung unterstützt sowohl das amerikanische metrische System & britischen metrischen System. Für Beispiel: Wenn ich die Anwendung von einem amerikanischen Server öffne, sehe ich die Textfelder für Füße & Zoll, & Wenn ich die gleiche Anwendung von einem anderen Server öffne, sehe ich die Textfelder in Zentimeter.Element kann nicht gefunden werden - Eine Website mit selen webdriver in verschiedenen Gebietsschemas automatisieren
ich meinen Code geschrieben haben, so dass es zuerst überprüft, ob ein Textelement mit Füßen & Zoll vorhanden ist, wenn es vorhanden ist, dann geht es vor & Werte in den Textfeldern eintritt, sonst, wenn Feet & Inches nicht vorhanden ist Geben Sie dann die Werte in das Textfeld Zentimeter ein.
/*
*
* This block is for the values in US version
*
*/
@FindBy(xpath = ".//*[@id='profile_height_large_value']")
WebElement CurrentHeightinFeet;
@FindBy(xpath = ".//*[@id='profile_height_small_value']")
WebElement CurrentHeightinInches;
/*
* This block is for the values in British version
*
*/
@FindBy(xpath = ".//*[@id='profile_height_display_value']")
WebElement CurrentHeightinCM;
Und mein Code zu überprüfen, ob es in jeder Version wie folgt ist.
public void userFitnessDetails() {
CurrentWeight.sendKeys("70");
if (CurrentHeightinFeet.isDisplayed()) {
CurrentHeightinFeet.clear();
CurrentHeightinFeet.sendKeys("5");
CurrentHeightinInches.clear();
CurrentHeightinInches.sendKeys("10");
}
CurrentHeightinCM.clear();
CurrentHeightinCM.sendKeys("170");
}
Wenn ich den obigen Code ausführen bekomme ich einen Fehler - FAILED: Anmelden org.openqa.selenium.NoSuchElementException: Kann Element suchen:
{"method":"xpath","selector":".//*[@id='profile_height_large_value']"}
Könnte jemand mich leiten, dies zu korrigieren ?
Dank
Ich habe meinen Code wie auf Ihren Vorschlag geändert, aber ich habe Probleme in meinem Zustand zu überprüfen. – AdiBoy
@FindBy (xpath = ".//**@@id = 'profile_height_display_value']")) \t WebElement CurrentHeigtinCM; \t @FindAll (@FindBy (id = "profile_goal_weight_display_value")) \t WebElement GoalWeight; Auch in meiner Zustandsprüfung verwende ich if (CurrentHeightinFeet.size()> 0 && CurrentHeightinInches.size()> 0) { \t \t \t CurrentHeightinFeet.clear(); \t \t \t CurrentHeightinFeet.sendKeys ("5"); \t \t \t CurrentHeightinInches.clear(); \t \t \t CurrentHeightinInches.SendKeys ("10"); \t \t} "Die Methode sendKeys (String) ist nicht definiert für den Typ Liste" –
AdiBoy
Sie können sendKeys nicht in einer Liste aufrufen, die die WebElements enthält. Wenn die Listengröße größer als 0 ist, ist Ihre Bedingung erfüllt.Das gesuchte Element muss aus der Liste extrahiert werden. Verwenden Sie die Methode get (0) in der Liste, um das WebElement abzurufen. Verwenden Sie dann die sendKeys-Methode. – Grasshopper