3

非常によく似た質問がすでにあることは知っていますが、私は Java/Selenium WebDriver の初心者であり、もともとこれを Selenium IDE で作成し、Java / JUnit4 / WebDriverとしてエクスポートして、特定のヘルプを得たいと思っていました。どこが間違っていたのか正確にはわかりません。Java アプリケーションとして実行すると、 Selection does not contain a main typeというエラーが表示され、 Java アプレットとして実行すると、 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

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 に答える
0

それをJavaアプリケーションとして実行することをやめました。

JUNIT テストとして実行します。

于 2013-03-28T10:54:11.873 に答える