Frage

Für meinen Abnahmetest schreibe ich Text in den Autovervollständigungs-Extender und muss auf die ausgefüllte Liste klicken.

Um die Liste zu füllen, muss ich AppendText anstelle von TypeText verwenden, sonst verliert das Textfeld den Fokus, bevor die Liste gefüllt wird.

Jetzt ist mein Problem, wenn ich versuche, auf die ausgefüllte Liste zu klicken.Ich habe versucht, das UL-Element zu durchsuchen und darauf zu klicken.aber das Klickereignis für die Liste wird nicht ausgelöst.

Dann habe ich versucht, die Liste nach Tag-Namen und Wert zu durchsuchen:

Element element = Browser.Element(Find.By("tagname", "li") && Find.ByValue("lookupString"));

Aber es wird nicht gefunden. Konnte irgendjemand tun, was ich versuche?

War es hilfreich?

Lösung

Die kürzere Version davon lautet:

string lookupString = "string in list";
Element list = Browser.Element("li", Find.ByText(new Regex(lookupString)));
list.MouseDown();

Regexs führen eine Teilübereinstimmung durch, sodass Sie dies nicht tun brauchen um .* auf beiden Seiten anzugeben und string.Format zu verwenden.Dies setzt jedoch voraus, dass der LookupString keine für Regexs speziellen Zeichen enthält, diese müssten maskiert werden.

Andere Tipps

Falls jemand das gleiche Problem hat.Es funktioniert mit dem nächsten Code:

string lookupString = "string in list";
Regex lookup = new Regex(string.Format(".*{0}.*", lookupString));
Element list = Browser.Element("li", Find.ByText(lookup));
list.MouseDown();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top