selenide UI自动化进阶二 pageObject实现页面管理

首先定义登录页面,上代码吧

LoginPage.java

package com.test.selenium.page;

import org.openqa.selenium.By;

import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.page;

public class LoginPage {

	public SearchResultsPage searchFor(String text) {
	    $(By.id("kw")).val(text).pressEnter();
	    return page(SearchResultsPage.class);
	  }

}

LoginTest.java

package com.test.selenium.page;

import static com.codeborne.selenide.Selenide.open;

import org.junit.Before;
import org.junit.Test;

import com.codeborne.selenide.Configuration;

import static com.codeborne.selenide.CollectionCondition.sizeGreaterThan;
import static com.codeborne.selenide.Condition.text;

public class LoginTest {

	@Before
	public void test() {
		Configuration.browser ="chrome";
		System.setProperty("webdriver.chrome.driver", "D:\\work\\com.test.selenium\\drivers\\chromedriver.exe");
	}



	@Test
	public void  testBaidu() {
		LoginPage page = open("https://baidu.com/", LoginPage.class);
	    SearchResultsPage results = page.searchFor("selenide");

	    results.getResults().shouldHave(sizeGreaterThan(1));
	    results.getResult(0).shouldHave(text("Selenide: concise UI tests in Java"));
	}
}

SearchResultsPage.java

 

package com.test.selenium.page;

import com.codeborne.selenide.ElementsCollection;
import com.codeborne.selenide.SelenideElement;

import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.$$;

import org.openqa.selenium.By;

public class SearchResultsPage {
	public ElementsCollection getResults() {
	    return $$(By.xpath(".//*[contains(@class, 'c-container')]"));
	  }
	  public SelenideElement getResult(int index) {
	    return $(By.xpath(".//*[contains(@class, 'c-container')]"), index);
	  }
}

 

利用这样的方式进行,相互配合使用,可以最大化复用页面。

实例:可以参考git代码部分 https://github.com/wallaceok/light_selenide   后续进阶介绍中会详情介绍这个封装的内容。请继续关注!

posted @ 2018-08-09 09:13  davice_li  阅读(563)  评论(0编辑  收藏  举报