Wie kann ich verwenden, Klicken Sie auf Element-Funktion mit robot framework, wenn das element keine id oder name?
Ich bin derzeit mit der Selenium2Library in robot framework zu automatisieren einige web-tests. Derzeit, ich habe Probleme bei der Automatisierung der Klick auf eine Schaltfläche "login", Klicken Sie mit der Element-Funktion.
Dies ist das element, das ich benutzen möchte:
<a class="transparentBtn loginLink ng-scope" ng-click="commonService.gigyaRaasLogin()" translate="BTN_ADMIN_LOGIN_WATCHLIST">LOGIN</a>
- und dies ist der xpath-wenn ich das kopieren aus der Konsole:
//*[@id="menu"]/div/div[5]/div/div/div[2]/ul/li[2]/a
Ich habe Probleme bei der Suche nach dem locator zu verwenden, wenn ich wollen, klicken Sie auf dieses element.
Diese sind einige der Dinge, die ich bisher ausprobiert habe:
Click Element css=a.loginLink
Click Element link=LOGIN
xpath=//a[contains(text(), 'LOGIN')]
Nope, hat nicht funktioniert. Ich habe den gleichen Fehler wie vorher: ValueError: Element-Finder " xpath=//a[contains(text(), 'LOGIN')]' Tat nicht mit einem Elemente.
InformationsquelleAutor Zubair | 2017-07-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Suchen Sie nach einzigartigen css (1 übereinstimmenden Knoten) oder versuchen, diese
InformationsquelleAutor Sachhya
Ich empfehlen, ein bisschen mehr flexibel. Der gute Ansatz, wenn Sie die balance finden zwischen definieren, die flexibel und einzigartig. Ansonsten ist die kleinste Website ändern, wird breake deinen test.
Folgende Beispiel sollte das Spiel auf dem vorherigen Beispiel:
Match auf einen link enthalten, dass der LOGIN-text
Match auf ein beliebiges element enthalten, dass der LOGIN-text
Match auf ein beliebiges element, wo das class-Attribut gleich mit "transparentBtn loginLink ng-scope"
Können Sie überprüfen, mehrere Attribute gleichzeitig
Können Sie die Verwendung der contains() überprüft, ob string-Teil des class-Attributs
InformationsquelleAutor Krisz
Antwort auf die Frage im Titel, die Selenium2Library unterstützt viele verschiedene locators. Die expressive ist xpath, die verwendet werden können, zu finden, einfach über alles. Finden Sie im Abschnitt Ortung oder die Angabe von Elementen in der Selenium2Library Dokumentation.
In Ihrem Fall, wenn Sie klicken auf einen link, dann
click link link=LOGIN
funktionieren sollte. Wenn nicht, könnte es sein, dass der link in einem iframe, oder vielleicht ist es versteckt, css (einige frameworks wie angular und reagieren, verstecken-Elemente und ersetzen Sie Sie mit Ihrer eigenen Sache)InformationsquelleAutor Bryan Oakley