2016-03-31 5 views
0

Firebug arbeiten zeigt: <a class="ng-binding" ng-click="goto(menu.MenuInfo.Href)">Wie das Element in diesem Fall unten zu finden, während mit Selen IDE

FirePath zeigt: html/body/nav/div[1]/div[1]/ul/li[3]/a

Es zeigt, wie oben, wenn ich Firebug oder FirePath verwenden, um das Web-Element zu finden; Dann kopiere ich es auf Selenium IDE Zieltext und klicken Sie auf die Schaltfläche Suchen, aber es kann das Webelement nicht finden. Wie kann ich das Web-Element finden und es in Selenium IDE ausführen, um Skript aufzunehmen?

Antwort

0

Automatische XPath-Detektoren sind normalerweise keine gute Wahl, wenn Sie versuchen, den Selenium-Lokator für ein bestimmtes Bahnelement herauszufinden. Insbesondere Ausdrücke mit numerischen Indizes (z. B. Ihre li[3]) ändern sich wahrscheinlich, wenn Listen-/Tabellenelemente entfernt, hinzugefügt oder neu sortiert werden.

Der beste Weg, um ein Element zu finden, ist immer per ID, da diese immer eindeutig ist (es sei denn, Sie haben ungültigen HTML). Aber dein Element hat leider keinen. Für Elemente <a> ist es normalerweise gut, die LinkText für die Lokalisierung des Elements zu verwenden, vorausgesetzt, dass a) es einzigartig ist und b) Ihre Seite keine Sprachumschaltfunktion hat, die normalerweise alle Linktexte ändert.

Alternativ können Sie die Tag-Namen und Klasse über CSS-Selektor verwenden:

a.ng-binding 

Dennoch hängt es von der Struktur Ihrer Seite, ob dieser Locator einzigartig ist oder nicht. Es gibt keine allgemeinen Regeln, um den besten Locator zu finden, nur gute und schlechte Strategien.