【发布时间】:2016-07-20 09:50:17
【问题描述】:
我正在使用 Java 和 Selenium Grid 和 JUnit 框架编写自动测试,但我遇到了用户输入问题。所以我的代码如下所示:
package com.example.tests;
import com.thoughtworks.selenium.DefaultSelenium;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.Scanner;
import static org.junit.Assert.fail;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
public class test {
private DefaultSelenium selenium;
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 5555, "*googlechrome", "www.google.com");
selenium.start();
}
@Test
public void Test() throws Exception {
// some tests here
}
@After
public void tearDown() throws Exception {
selenium.stop();
}
我想添加一个用户输入,所以当用户输入例如“Google Chrome”时,测试将从 Google Chrome 开始,当他输入“Firefox”时,测试将从 Firefox 等开始。我试过放
Scanner in = new Scanner(System.in);
String web_browser = in.next();
在我的代码中某处(例如在 setUp 方法中),但是当程序启动时,我无法在控制台中输入任何内容。有谁知道这个的解决方案吗?
【问题讨论】:
-
您究竟为什么想要一个需要手动控制的自动化测试?如果您只是想自动化某些任务,则不应对其进行单元测试,只需创建一个 POJO 来运行您需要的任务并根据您要运行的任务为其提供参数。
-
@t0mppa 是的,但我想用不同的浏览器并行运行相同的测试
-
我仍然认为将手动工作放在中间是错误的方式,因为我们正在谈论自动化测试。您可以让您的测试套件启动多个浏览器,而无需您以任何方式亲自与之交互。
标签: java selenium junit user-input remote-control