0

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

我下载了示例 serenity 项目 (mvn archetype serenity-junit-screenplay-archetype) ( https://www.youtube.com/watch?v=o-6CcDFn5Ug ) 以在 google 中搜索“BDD in Action”。

我正在使用 Gradle 进行构建编译:

构建.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)记录器实现

启动 InternetExplorerDriver 服务器(32 位)2.48.0.0 监听端口 35996

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 项目,其中包含 100 多个测试,调用 InternetExplorer 没有问题。

如果我在这里做错了什么,请告诉我。

4

1 回答 1

0

你试过升级IE驱动到2.53.0的版本吗?

于 2016-06-24T00:18:12.133 回答