【问题标题】:Run java Selenium in command prompt在命令提示符下运行 java Selenium
【发布时间】:2014-07-02 15:44:44
【问题描述】:

我有这个代码:

import org.openqa.selenium.firefox.FirefoxDriver;

public class Test {
    public static void main(String[] args) {
        try{
            FirefoxDriver driver = new FirefoxDriver();
            driver.get("http:\\www.yahoo.com");
        } catch(Exception e){
            e.printStackTrace();
        }
    }
}

我想在cmd 中运行它。出于这个原因,我在 .bat 文件中调用以下命令。

javac -classpath "C:\selenium-2.42.2\selenium-server-standalone-2.42.2.jar;C:\selenium-2.42.2\selenium-java-2.42.2.jar;C:\selenium-2.42.2\selenium-firefox-driver-2.42.2.jar" Test.java
java Test

返回如下错误:

C:\selenium-2.42.2>javac -classpath "C:\selenium-2.42.2\selenium-server-standalo
ne-2.42.2.jar;C:\selenium-2.42.2\selenium-java-2.42.2.jar;C:\selenium-2.42.2\sel
enium-firefox-driver-2.42.2.jar" Test.java

C:\selenium-2.42.2>java Test
Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/f
irefox/FirefoxDriver
        at Test.main(Test.java:6)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.firefox.Firefox
Driver
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 1 more

此外,以下信息将有所帮助:

  1. java -version得到:

    java版本“1.8.0_05” Java(TM) SE 运行时环境 (build 1.8.0_05-b13) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.5-b02,混合模式)

  2. C:\Program Files (x86)\Mozilla Firefox>firefox.exe -v | more Mozilla Firefox 30.0

也许这篇文章会被标记为重复,但我遵循了其他人的建议但没有成功。你能说明一下情况吗?

Here 是我使用的jar 文件。

谢谢!

PS: Win7 64位

【问题讨论】:

  • 尝试使用WebDriver driver = new FirefoxDriver();
  • 使用相同的jar 文件,cmd 返回类似的错误:the Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/W ebDriver。又奇怪了。 jar 文件加载有什么问题吗?

标签: java selenium


【解决方案1】:

您的第一个命令 javac 构建类,但没有将依赖项嵌入到最终的 jar 文件中,这就是错误告诉您的内容:java.lang.NoClassDefFoundError。运行类时仍然需要提供相同的依赖项。

javac -cp "C:\selenium-2.42.2\selenium-java-2.42.2.jar" Test.java
java -cp "C:\selenium-2.42.2\selenium-java-2.42.2.jar" Test

selenium-java.jar 对于您的情况应该足够了。查看http://www.seleniumhq.org/download/maven.jsp 此处的图形,了解不同的硒罐是如何相互包含的。

我不相信你可以只使用javac 将依赖项嵌入到最终的.jar 中。您将需要其他工具。

【讨论】:

  • -classpath-cp 有什么区别。无论如何,我运行您的建议而不是我的建议(第二个 sn-p),但 cmd 在运行 java Test 后返回相同的错误。
  • 抱歉,我的第一反应走神了。更正了我的答案。
  • 感谢您的回复。我正在运行您的 sn-p,但出现此错误:C:\selenium-2.42.2>java -cp "C:\selenium-2.42.2\selenium-java-2.42.2.jar" Test Error: Could not find or load main class Test。有什么想法吗?顺便在文件夹中创建了一个Test.class 文件。`对不起我的无知:)
  • 您真的应该考虑使用 适当的 IDE,例如 Eclipse 或其他其中之一,它可以为您完成所有这些工作!
  • 最后,corerct命令是javac -cp "C:\selenium-2.42.2\selenium-java-2.42.2.jar;selenium-server-standalone-2.42.2.j‌​ar" Test.javajava -cp "C:\selenium-2.42.2\selenium-java-2.42.2.jar;.;selenium-server-standalone-2.42.2‌​.jar" Test
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-28
  • 2020-12-16
  • 2023-03-25
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多