java - Selenium Java - 如何外包 @Config 并从外部类调用测试?

标签 java class selenium conductor-framework

我敢肯定,有经验的 Java 开发人员可以很快回答这个问题。但是由于我对 Java 不太熟悉,所以我不知道如何在 Java 中获取 Selenium 的 @Config 部分。如果我可以有一个配置文件或类,我可以在其中一方面放置数据(浏览器、网站等),另一方面放置测试文件,那将是最佳选择。
下面是一个测试文件的例子:

package com.example_test.selenium;

import io.ddavison.conductor.Browser;
import io.ddavison.conductor.Config;
import io.ddavison.conductor.Locomotive;
import org.junit.Test;

@Config(
        browser = Browser.CHROME,
        url     = "http://example.com"
)

public class test_a_Home extends Locomotive {
    @Test
    public void testifExists() {
        validatePresent(site_a_Home.EL_NEWCUSTOMERBANNER);
    }
}

现在我想要一个名为 tests.java 的单独文件,我可以在其中调用“test_a_Home”函数。如果我尝试使用

package com.example_test.selenium;

public class tests {
    test_a_Home test = new test_a_Home();

    test.testifExists();

}

我收到错误消息,无法解析“testifExists()”。
我尝试将 public void testifExists() 更改为 public int testifExists() 并尝试使用 int res = test.testifExists(); 调用它> 在 class tests 中,但这也不起作用,因为我收到错误 java.lang.Exception: Method testNewCustomersBannerExists() should be void
如果有人能帮助我,我会很高兴。如果您需要更多信息,请随时提及。谢谢。

最佳答案

如果你希望你的设计是这样的,那么你需要这样组织你的测试:

public class BasePage {
    public Locomotive test;
    public BasePage(Locomotive baseTest) {
        test = baseTest;
    }
}

public class test_a_Home extends BasePage {
    public test_a_Home(Locomotive baseTest) {
        super(baseTest);
    }

    public void testifExists() {
        test.validatePresent(site_a_Home.EL_NEWCUSTOMERBANNER);
    }
}

然后你的测试类,我建议也创建一个基类:

@Config(
    browser = Browser.CHROME,
    url     = "http://example.com"
)
public class BaseTest extends Locomotive {}

然后是你的测试类:

public class tests extends BaseTest {
    test_a_Home test = new test_a_Home(this);

    @Test
    public void testHomePage() {
        test.testIfExists();
    }
}

你还说状态:

I don't get how to source out the @Config part of Selenium in Java.

请确保您知道,使用 Conductor 会将您从 Selenium API 中抽象出来。它只是包装它。 @Config 不属于 Selenium,它属于 Conductor。

关于java - Selenium Java - 如何外包 @Config 并从外部类调用测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33567837/

相关文章:

java - 错误: not found: java Usage: selenium-standalone action [options]

java - 在Java中,如何在切换到新的JTab之前捕获事件?

java - 发现映射属性不明确的映射方法(java.util.Map 和 java.util.Object)

css - Protractor 图像没有在对话框中上传?

java - 如何使用 CXF 获取发件人公钥?

ios - 保存一个充满自定义对象的 NSMutableArray

arrays - 如何在应用程序中的所有类之间共享一个数组?

c# - 如何在命令提示符下运行 selenium c# test?

python - Selenium:WAITING元素的高度不等于 X

Java - 使用 DOM 解析 xml