Ich erstelle meinen ersten Seitenobjektmodell-Test. Basierend auf Selenium's test design considerations möchte ich überprüfen, dass bestimmte Elemente gefunden werden, wenn ein Seitenobjekt instanziiert wird.Auf Seitenobjektelemente dynamisch zugreifen
Es gibt eine, einzige, die Überprüfung, die kann und soll, innerhalb der Seite Objekts sein, und das ist zu überprüfen, ob die Seite, und möglicherweise kritische Elemente auf der Seite, korrekt geladen wurden.
Gibt es eine Möglichkeit, dies zu lösen, ohne auf Reflexion zurückgreifen zu müssen?
public class PageObject
{
[FindsBy(How = How.Name, Using = "q")]
private IWebElement q1 { get; set; }
[FindsBy(How = How.Name, Using = "qq")]
private IWebElement q2 { get; set; }
protected IWebDriver webDriver;
public PageObject(IWebDriver webDriver)
{
this.webDriver = webDriver;
PageFactory.InitElements(webDriver, this);
HighPriorityElementsFound();
}
private bool HighPriorityElementsFound()
{
// how to verify all private IWebElements elements here?
}
}
Im Grunde sagen Sie, was ich zu erreichen versuche, aber ich fürchte, es beantwortet die Frage nicht. Ich versuche, ein Element zu extrahieren, das nur für diese Seite spezifisch ist, anstatt es hart zu codieren. Nicht sicher, was du mit deinem letzten Satz meinst. Ich rufe 'HighPriorityElementsFound' vom Konstruktor auf. Ob es eine Methode ist oder nicht ist irrelevant. – filur
Wie könnte Ihr Skript ein Element identifizieren, das im Vergleich zu allen anderen Seiten auf der Website, die es noch nie besucht hat, eindeutig ist? Im zweiten Punkt sind Funktionen für wiederverwendbaren Code. 'HighPriorityElementsFound()' wird niemals wiederverwendet, also warum in eine Funktion einfügen? Außerdem gibt es einen 'bool' zurück, aber du nimmst die Rückkehr nicht auf, also warum sollte man einen' Bool' zurückgeben? – JeffC