当前位置: 首页 > 知识库问答 >
问题:

如何使用Serenity调用IEDriver

常雅珺
2023-03-14

我知道这是一个基本的问题,但我就是无法解决它。

我下载了示例宁静项目(mvn原型宁静-junit-screenplay-原型)(https://www.youtube.com/watch?v=o-6CcDFn5Ug)在谷歌中搜索“BDD in Action”。

我使用Gradle进行编译:

build.gradle

repositories {
    jcenter()
    mavenLocal()
}

buildscript {
    repositories {
        mavenLocal()
        jcenter()
    }
    dependencies {
        classpath("net.serenity-bdd:serenity-gradle-plugin:1.1.36")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'net.serenity-bdd.aggregator'

dependencies {
    compile 'net.serenity-bdd:serenity-core:1.1.36'
    compile 'net.serenity-bdd:serenity-junit:1.1.36'
    compile 'net.serenity-bdd:serenity-screenplay:1.1.36'
    compile 'net.serenity-bdd:serenity-screenplay-webdriver:1.1.36'
    testCompile('junit:junit:4.12')
    compile('org.assertj:assertj-core:1.7.0')
    compile('com.googlecode.lambdaj:lambdaj:2.3.3')
}
gradle.startParameter.continueOnFailure = true

我更新了“SearchByKeywordStory”如下,以包括IEDriver和ChromeDriver的“webdriver.driver”属性:

@RunWith(SerenityRunner.class)
public class SearchByKeywordStory {

    Actor anna = Actor.named("Anna");

    @Managed(uniqueSession = true, clearCookies=BeforeEachTest)
    public WebDriver herBrowser;

    @Steps
    OpenTheApplication openTheApplication;

    @Before
    public void annaCanBrowseTheWeb() {
        System.setProperty("webdriver.ie.driver", "../resources/IEDriverServer.exe");
        System.setProperty("webdriver.chrome.driver", "../resources/chromedriver.exe");
        anna.can(BrowseTheWeb.with(herBrowser));
    }

    @Test
    public void search_results_should_show_the_search_term_in_the_title() {
        givenThat(anna).wasAbleTo(openTheApplication);

        when(anna).attemptsTo(Search.forTheTerm("BDD In Action"));

        then(anna).should(eventually(seeThat(TheWebPage.title(), containsString("BDD In Action"))));

    }
}

我使用IntelliJ来执行我的场景。Chromedriver工作完美,测试通过。但是IEDriver不工作,当我运行测试时,我得到以下错误:

SLF4J:无法加载类“org . slf4j . impl . staticloggerbinder”。SLF4J:默认为无操作(NOP)记录器实施

已在端口35996上启动InternetExplorerDriver服务器(32位)2.48.0.0侦听

net.thucydides.core.webdriver。UnsupportedDriverException:无法实例化类org.openqa.selenium.ie.InternetExplorerDriver

net.thucydides.core.webdriver。UnsupportedDriverException:无法实例化类org.openqa.selenium.ie.InternetExplorerDriver

at org.ao.automation.tasks.OpenTheApplication.performAs(OpenTheApplication.java:15)
at org.ao.automation.features.search.SearchByKeywordStory.search_results_should_show_the_search_term_in_the_title(SearchByKeywordStory.java:43)

以退出代码-1完成的进程

我已验证IE中的所有设置(受保护设置、缩放级别、HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BFCACHE的注册表值)

我可以看到IE浏览器被调用(启动Internet Explorer...等等),但它在那之后立即失败。

我很确定IEDriver是有效的,因为我有几个其他的Selenium maven项目,经过数百次测试,调用InternetExplorer都没有问题。

请让我知道,如果我在这里做错了什么。

共有1个答案

段干弘毅
2023-03-14

您是否尝试过将 IE 驱动程序的版本升级到 2.53.0?

 类似资料:
  • 我需要对一组数据运行测试,但我找不到一种方法在我的步骤中执行软断言,并在 Serenity 报告中的正确步骤中显示错误。 以及示例步骤: 我尝试使用assertj框架。但我的问题是“我的所有数据都是正确的”步骤被正确标记为FAILURE,但所有子步骤“检查值X”都在Serenity的报告中标记为SUCCESSes。 我的测试代码 : 这是我的秘密。myAwesomeValidator(myData

  • 本文向大家介绍如何使用JAVA调用SHELL,包括了如何使用JAVA调用SHELL的使用技巧和注意事项,需要的朋友参考一下 通过ProcessBuilder进行调度 这种方法比较直观,而且参数的设置也比较方便, 比如我在实践中的代码(我隐藏了部分业务代码): 这里有必要解释一下几个参数: RUNNING_SHELL_FILE:要运行的脚本 SHELL_FILE_DIR:要运行的脚本所在的目录; 当

  • 问题内容: 如何使用链接调用JavaScript代码? 问题答案: 要么 编辑: 上面的回答确实不是一个好的解决方案,自从我最初发布以来,已经学到了很多有关JS的知识.

  • 我正在使用spring rest示例代码。我想从代码中调用URL。我对Rest和Spring不熟悉。这是我的控制器 有模型课 当我调用url时localhost:8080/springrestexample/employees/出现了一些数据。现在我想修改这段代码。如果我调用上面的url,我想将页面重定向到另一个URL,如https://cp.lk/index.php/cbs/sms/send?

  • 我尝试使用Serenity BDD构建一个IntelliJ、Java 10/Gradle 4.8项目,使用maven命令进行拉取和自动构建(使用Selenium-Junit的选项3): 我遇到的最后一个依赖问题是尝试使用Chrome“chromedriver”webdriver,因为我试图为其构建测试的项目是针对Chrome web浏览器的项目。现在,如果没有列出webdriver(在sereni

  • 问题内容: 我有一个简化的函数,看起来像这样: 基本上,我希望它调用,并返回在回调lambda中给出的响应。但是,上面的代码不起作用,只是立即返回。 只是出于非常骇人的尝试,我尝试了以下无效的方法,但是至少您了解了我要实现的目标: 基本上,实现此目的的“ node.js /事件驱动”良好方式是什么?我希望我的函数等待,直到调用回调,然后返回传递给它的值。 问题答案: 做到这一点的“良好的node.