• 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   后续进阶介绍中会详情介绍这个封装的内容。请继续关注!

  • 相关阅读:
    Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节
    第十三周项目2:形状类族中的纯虚函数
    js中的null和undefined
    javaScript Windows相关
    Array和ArrayList的异同点
    汉语-词语-人才:T型人才
    图书-计算机-软件编程:《程序员的自我需要》
    智力-智力测试-门萨:百科
    智力开发-早教:七田真
    经济-AMA:百科
  • 原文地址:https://www.cnblogs.com/davice/p/9446880.html
Copyright © 2020-2023  润新知