3

我知道已经存在非常相似的问题,但是我是 Java/Selenium WebDriver 的初学者,最初是在 Selenium IDE 中创建的,然后将其导出为Java / JUnit4 / WebDriver并希望得到具体的帮助,因为我是'不确定我到底哪里出错了。当我作为Java Application运行时,我收到错误Selection does not contain a main type,当我作为Java Applet运行时,我收到错误Selection does not contain an applet。这是我的代码:

package com.exports.tests;

import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class Login {
  private WebDriver driver;
  private String baseUrl;
  private boolean acceptNextAlert = true;
  private StringBuffer verificationErrors = new StringBuffer();

  @Before
  public void setUp() throws Exception {
    driver = new FirefoxDriver();
    baseUrl = "https://www.example.co.uk/";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  }

  @Test
  public void testLogin() throws Exception {
    driver.get(baseUrl + "/123example/index.jsp");
    // ERROR: Caught exception [ERROR: Unsupported command [getEval | prompt("Username: ") | ]]
    driver.findElement(By.name("LoginText1")).clear();
    element.sendKeys(user input);
    //driver.findElement(By.name("LoginText1")).clear();
    //driver.findElement(By.name("LoginText1")).sendKeys(_username);
    // ERROR: Caught exception [ERROR: Unsupported command [getEval | prompt("Password: ") | ]]
    driver.findElement(By.name("password1")).clear();
    element.sendKeys(user input);
    //driver.findElement(By.name("password1")).clear();
    //driver.findElement(By.name("password1")).sendKeys(_password);
    driver.findElement(By.cssSelector("img[alt=\"Login\"]")).click();
    // ERROR: Caught exception [ERROR: Unsupported command [windowFocus |  | ]]
    driver.switchTo().window("CarrierNet Desktop");
  }

  @After
  public void tearDown() throws Exception {
    driver.quit();
    String verificationErrorString = verificationErrors.toString();
    if (!"".equals(verificationErrorString)) {
      fail(verificationErrorString);
    }
  }

  private boolean isElementPresent(By by) {
    try {
      driver.findElement(by);
      return true;
    } catch (NoSuchElementException e) {
      return false;
    }
  }

  private String closeAlertAndGetItsText() {
    try {
      Alert alert = driver.switchTo().alert();
      if (acceptNextAlert) {
        alert.accept();
      } else {
        alert.dismiss();
      }
      return alert.getText();
    } finally {
      acceptNextAlert = true;
    }
  }
}

任何帮助是极大的赞赏。

4

2 回答 2

0

将其作为 java 应用程序运行。

将其作为 JUNIT 测试运行。

于 2013-03-28T10:54:11.873 回答
0

扩展 HemChe 的答案(这让我走上了正轨):

将 JUnit 和 Selenium .jar 文件位置添加到您的类路径中,然后设置您的 web 驱动程序的路径(以便 Selenium 知道如何控制浏览器),然后使用您的类作为参数调用 JUnit 运行器。这就是它在我的 linux 命令行上的样子

cd /path/to/my/compiled/class
java -classpath .:/path/to/junit/classes/*:/path/to/selenium/classes/* -Dwebdriver.gecko.driver=/path/to/geckodriver org.junit.runner.JUnitCore MyTestClass

就像魔术一样,一个 Firefox 窗口打开并运行您的测试,控制台中出现错误。

Selenium 类路径应该有文件 client-combined-xxx-nodeps.jar JUnit 类路径应该有很多文件,包括 junit-x.xx.jar

于 2016-08-08T07:11:00.587 回答