如何在不蚀的情况下运行硒代码?

塔欣·阿迪特(Tahseen Adit)

这是我的Java代码:

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

class mytestclass {
    public static void main(String[] args) {

    WebDriver driver = new FirefoxDriver();
    driver.get("http://www.google.com");
    WebElement element = driver.findElement(By.name("q"));
    element.sendKeys("selenium!\n"); // send also a "\n"
    element.submit();

    // wait until the google page shows the result
    WebElement myDynamicElement = (new WebDriverWait(driver, 10))
              .until(ExpectedConditions.presenceOfElementLocated(By.id("resultStats")));

    List<WebElement> findElements = driver.findElements(By.xpath("//*[@id='rso']//h3/a"));

    // this are all the links you like to visit
    for (WebElement webElement : findElements)
    {
        System.out.println(webElement.getAttribute("href"));
    }
  }
}

我在cmd中输入了以下命令来编译.java文件:

javac -classpath "selenium-server-standalone-2.53.1.jar;selenium-java-2.53.1\selenium-2.53.1\selenium-java-2.53.1.jar;selenium-java-2.53.1\selenium-2.53.1\selenium-java-2.53.1-srcs.jar;D:\Adit\Selenium\selenium-java-2.53.1\selenium-2.53.1\libs\*.jar" mytestclass.java

当我尝试使用'java mytestclass'运行它时,在cmd中给我以下错误:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.privateGetMethodRecursive(Unknown Source)
    at java.lang.Class.getMethod0(Unknown Source)
    at java.lang.Class.getMethod(Unknown Source)
    at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriver
    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)
    ... 7 more

我试图使用gradle来编译jar文件。我的文件树如下所示:这是我的文件树

在图像中突出显示的libs文件夹中,我已复制了所有jar文件。我提供以下图片:

JAR文件

我的build.gradle文件包含以下几行:

apply plugin: 'java'

dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}

现在,如果我给命令“ gradle build”,那么它会显示“ BUILD SUCCESSFUL”。

:compileJava
:processResources UP-TO-DATE
:classes
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build

BUILD SUCCESSFUL

Total time: 2.738 secs

但是,如果我尝试使用命令“ java mytestclass”运行编译的类文件,则会再次遇到相同的错误。

我该如何解决?我要运行硒而不发生蚀。我正在运行Windows,而我的Java版本是1.8.0_101。

塔欣·阿迪特(Tahseen Adit)

我创建了一个libs文件夹并将所有jar文件从selenium-java-2.53.1的libs目录复制到该新创建的libs文件夹中。然后我用Gradle编译了我的Java代码。我的build.gradle文件:

apply plugin: 'java'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

然后,我向类路径中添加了两个必需的jar文件,它解决了我的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不运行代码的情况下确定代码的结果

如何在不阻止主线程的情况下运行代码(Google / Doubleclick Ads)

Dart 如何在不阻塞的情况下运行异步代码?

如何在不暴露代码的情况下显示动画?

如何在不阻止的情况下从终端运行命令?

如何在不阅读〜/ .profile的情况下运行sh?

如何在不冻结GUI的情况下运行它

如何在不运行的情况下备份gitlab?

如何在不运行容器的情况下确定 UID?

如何在不终止的情况下运行bash脚本

如何在不缓存模板的情况下运行Flask?

如何在不导入模块的情况下运行模块?

如何在不登录邮件的情况下验证硒中的电子邮件链接?

每当(不)插入USB设备时,如何在不需要root权限的情况下运行代码?

如何在不更改项目代码库的情况下运行具有两个主要@SpringBootApplication文件的项目?

如何在不构建解决方案两次的情况下运行单元测试和部署代码?

如何在不损失效率的情况下将此代码转换为1线性代码?

如何在不更改原始代码的情况下编写以下代码?

在不运行按钮代码的情况下,Segue到SecondViewController

如何在不运行初始化/配置脚本的情况下运行bash?

如何在不运行JRE安装的情况下运行Eclipse?

如何在不运行静态代码分析的情况下使用 Visual C++ 在我自己的代码中引起 SAL 编译器警告

此Go代码如何在不取消引用的情况下通过指针设置对象的值?

如何在不破坏客户端代码的情况下拆分大型程序包?

如何在不覆盖当前变量的情况下获取R代码?

如何在不暴露源代码的情况下分发Swift库?

如何在不破坏原有代码的情况下增加函数的返回值?

我如何在不渲染的情况下从ERB代码块中获得收益?

Serilog-如何在不更改代码的情况下更改日志记录粒度