将Grid集成到Page对象模型中

时间:2016-01-18 20:48:56

标签: java selenium grid

我目前在本地机器上运行测试,现在我想使用selenium网格从Jenkins运行我的测试。

目前我的设置项目设置如下:

public BasePage(WebDriver driver){

    this.driver = driver;
    jsExecutor = ((JavascriptExecutor) driver);
    wait = new WebDriverWait(driver, 200);
}

public void loadPage(){

    driver.get(getPageUrl());
    driver.manage().window().maximize();
}

这些方法由

继承
 CretePage.java

public CreateClass(WebDriver driver) {
        super(driver);
        this.PAGE_URL = "http://xxxxxx.12121/home";
    }


public void createClass(String name){
    openPage();
    findDynamicElement(By.id("id"), 12);
    clickElement(button_Save);
}

然后我的测试针对班级RunTest.java

运行
public WebDriver driver;
    public WebDriverWait wait;
    CreateLocation CreateLocation;


    @BeforeClass(alwaysRun = true)
    public void setup(){
        this.driver = new FirefoxDriver();
        wait = new WebDriverWait(driver, 10);

        CreatePage = PageFactory.initElements(driver, CreatePage.class );

@Test(priority=1)
public void createClass(){
    CreateClass.createClass("Selenium Webdriver Class");

}

到目前为止,我所做的任何代码更改都会导致构建失败或启动空浏览器。任何人都可以解释我应该尝试做什么或阅读一篇文章来帮助我解决这个问题。

1 个答案:

答案 0 :(得分:0)

假设您已经设置并运行了一个集线器和一个或多个节点,则需要使用RemoteWebDriver和DesiredCapabilities类。这应该都在setUp()中完成。像这样:

@BeforeClass
public void setUp() {
    String baseUrl = "http://www.google.com"; // Wherever you start your test
    String nodeUrl = "http://localhost:4444/wd/hub"; // Whatever the URL is to your hub
    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setBrowserName("firefox");
    driver = new RemoteWebDriver(new URL(nodeUrl), capabilities);
    driver.get(baseUrl);
}

我在Selenium's GitHub page找到了大部分信息。