【问题标题】:Robot framework not picking up keyword implementation机器人框架没有选择关键字实现
【发布时间】:2017-12-07 03:24:41
【问题描述】:

我正在尝试在我创建的 Eclipse Maven-Selenium-TestNG java 项目之上设置机器人,但它似乎没有选择默认关键字(我什至还没有尝试添加自己的关键字) .

我首先创建了一个 maven 项目并将 selenium 3.4、testNG 6.8 和机器人 3.0.2 的依赖项添加到 pom.xml,然后还添加了机器人插件 1.4.7。最后,更新项目,让 maven 下载所有需要的东西。

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

这是我的 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 运行时,我得到:

设置失败:未找到名为“Start Selenium Server”的关键字。

同样拆卸失败:没有名称为“停止 Selenium 服务器”的关键字 找到了。

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

【问题讨论】:

    标签: java eclipse maven selenium robotframework


    【解决方案1】:

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

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

    假设安装SeleniumLibrary 的文件夹在您的PYTHONPATH 中,robot 将导入该库并为您提供关键字。

    【讨论】:

      【解决方案2】:

      我实际上发现我缺少一个 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__.robot 文件并使用了我创建的关键字(浏览器设置):

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

      【讨论】:

        猜你喜欢
        • 2020-09-25
        • 2013-11-08
        • 2015-10-14
        • 2019-06-11
        • 2017-12-19
        • 2012-04-24
        • 2021-08-15
        • 2015-11-07
        • 2018-02-25
        相关资源
        最近更新 更多