我敢肯定,经验丰富的Java开发人员可以很快回答这个问题。但由于我不熟悉Java,我不知道如何在Java中找到Selenium的@Config部分。如果我可以有一个config-file或-class,我可以将数据(浏览器,网站等)放在一方面,另一方面放置测试文件,这将是最佳选择。
以下是测试文件的示例:
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
。
如果有人能帮助我,我会很高兴。如果您需要更多信息,请随时提及。谢谢。
答案 0 :(得分:1)
如果您希望您的设计如此,那么您需要按照以下方式组织测试:
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();
}
}
你也说州:
我不知道如何在Java中找到Selenium的@Config部分。
请确保您知道,使用Conductor从Selenium API中抽象出来。它只是包装它。 @Config
不属于Selenium,属于指挥。