2017-07-03 2 views
1

Ich versuche, Roboter auf einem Eclipse Maven-Selenium-TestNG Java-Projekt, das ich erstellt habe, aber es scheint nicht Standard-Schlüsselwörter (ich habe nicht habe sogar versucht mein eigenes noch hinzuzufügen).Roboterframework nicht Schlüsselwort Implementierung übernehmen

Ich begann mit der Erstellung eines Maven-Projekts und fügte pom.xml die Abhängigkeiten für Selen 3.4, testNG 6.8 und den Roboter 3.0.2 hinzu, fügte dann auch das Roboter-Plugin 1.4.7 hinzu. Schließlich, aktualisiert das Projekt so maven downloadet alle benötigten Sachen.

Um Selen (ohne Roboter) zu testen, habe ich eine textNG-Klasse in src> test> java erstellt, eine Systemeigenschaft hinzugefügt, die auf die Datei chromedriver.exe in meinem System verweist, und einen einfachen Test hinzugefügt, der einfach den Browser öffnet und navigiert Google. Es hat funktioniert, jetzt möchte ich einen Roboter dazu benutzen.

Dies ist meine pom.xml-Datei:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.demo.automation</groupId> 
    <artifactId>automated_tests</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <dependencies> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-java</artifactId> 
     <version>3.4.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.testng</groupId> 
     <artifactId>testng</artifactId> 
     <version>6.8</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.robotframework</groupId> 
     <artifactId>robotframework</artifactId> 
     <version>3.0.2</version> 
    </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.robotframework</groupId> 
     <artifactId>robotframework-maven-plugin</artifactId> 
     <version>1.4.7</version> 
     <executions> 
      <execution> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

ich eine Datei in src/test/Robot Framework/Annahme erstellt, mit folgendem Inhalt:

*** Settings *** 
Test Set Up Start Selenium Server 
Test Tear Down Stop Selenium Server 

*** Test Cases *** 
Visit google 
    Open Browser https://www.google.com chrome 
    Close Browser 

Allerdings, wenn ich laufe als maven install, ich bekomme:

Setup fehlgeschlagen: Kein Schlüsselwort mit dem Namen 'Start Selenium Server' gefunden.

Auch Teardown fehlgeschlagen: Kein Schlüsselwort mit dem Namen 'Stop Selenium Server' gefunden.

Warum findet der Roboter die Implementierung der Schlüsselwörter nicht? Und wie füge ich Implementierungen meiner eigenen Keywords hinzu?

Antwort

1

Der Grund, warum Robot die Schlüsselwörter nicht findet, ist, dass Sie die Bibliothek, die die Schlüsselwörter enthält, nicht importieren. Start Selenium Server ist Teil der veralteten SeleniumLibrary. Um die Keywords verwenden Sie sie mit der Library Einstellung importieren müssen:

*** Settings *** 
Library SeleniumLibrary 
Test Set Up Start Selenium Server 
Test Tear Down Stop Selenium Server 

Unter der Annahme, dass der Ordner, in dem SeleniumLibrary installiert ist in Ihrem PYTHONPATH ist, werden Roboter die Bibliothek importieren und die Schlüsselwörter Ihnen zur Verfügung stellen.

0

Ich fand heraus, dass ich eine Maven-Abhängigkeit fehlt:

<dependency> 
    <groupId>com.github.markusbernhardt</groupId> 
    <artifactId>robotframework-selenium2library-java</artifactId> 
    <version>1.4.0.8</version> 
</dependency> 

Auch ich brauche nicht zu starten Selenium Server und Stop-Selenium Server verwenden, weil sie veraltet sind. Danach konnte ich meinen Test auszuführen, indem Sie einen benutzerdefinierten Schlüsselwort Erstellung Browser-Pfad zu setzen (ich verwende chromedriver):

ich innerhalb src/main/java/demo eine .java-Datei erstellt und eine Methode hinzugefügt, die die Eigenschaft aufstellt:

package demo; 

public class Setup { 
    public void driverPath() { 
     System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe"); 
    } 
} 

Dann habe ich src/test/Robot Framework/Annahme/Resource.robot Datei und importiert meine Bibliothek:

*** Settings *** 
Library Selenium2Library 
Library demo.Setup 

auch schuf ein src/test/Robot Framework/Annahme/__ init__.Roboter-Datei und das Schlüsselwort verwendet I erstellt (Browser Setup):

*** Settings *** 
Test Setup Driver Path 
Test Teardown Close All Browsers 
Test Timeout 2 minute 30 seconds 

In meinem Test aufgerufen ich Resource.robot:

*** Settings *** 
Resource Resource.robot 

*** Test Cases *** 
Visit google 
    Open Browser https://www.google.com chrome 
Verwandte Themen