我试图在我创建的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; 找到。
那为什么机器人没有找到关键字实现呢?我如何添加自己的关键字的实现?
答案 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