机器人框架未获取关键字实施

时间:2017-07-03 19:24:01

标签: java eclipse maven selenium robotframework

我试图在我创建的Eclipse Maven-Selenium-TestNG java项目之上设置机器人,但它似乎没有找到默认关键字(我甚至没有尝试添加我自己的。)

我开始创建一个maven项目并向pom.xml添加selenium 3.4,testNG 6.8和robot 3.0.2的依赖项,然后还添加了机器人插件1.4.7。最后,更新了项目,以便maven下载所有需要的东西。

为了测试selenium(没有机器人)我在src> test> java中创建了一个textNG类,添加了一个指向我系统中chromedriver.exe文件的系统属性,并添加了一个简单的测试,只需打开浏览器并导航到google 。它有效,所以现在我想在它上面使用机器人。

这是我的pom.xml文件:

<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>

我在src / test / robotframework / acceptance中创建了一个文件,其中包含以下内容:

*** 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

然而,当我以maven install运行时,我得到:

  

安装失败:没有名称的关键字&#39;启动Selenium Server&#39;找到。

     

同样的拆解失败:没有名称的关键字&#39;停止Selenium Server&#39;   找到。

那为什么机器人没有找到关键字实现呢?我如何添加自己的关键字的实现?

2 个答案:

答案 0 :(得分:1)

机器人没有找到关键字的原因是您没有导入包含关键字的库。 Start Selenium Server是已弃用的SeleniumLibrary的一部分。要使用关键字,您必须使用Library设置导入它们:

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

假设安装了SeleniumLibrary的文件夹位于PYTHONPATH中,机器人将导入库并使关键字可供您使用。

答案 1 :(得分:0)

我实际上发现我错过了一个maven依赖:

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

此外,我不需要使用Start Selenium Server和Stop Selenium Server,因为它们已被弃用。 之后,我能够通过创建自定义关键字来设置浏览器路径来运行我的测试(我正在使用chromedriver):

我在src/main/java/demo中创建了一个.java文件,并添加了一个设置属性的方法:

package demo;

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

然后,我创建了src / test / robotframework / acceptance / Resource.robot文件并导入了我的库:

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

还创建了一个src / test / robotframework / acceptance / __ init __。机器人文件并使用了我创建的关键字(浏览器设置):

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

在我的测试中,我调用了Resource.robot:

*** Settings ***
Resource  Resource.robot

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