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

  • 相关阅读:
    你欠我的幸福,怎么弥补
    爱,请你走开
    一生为你
    爱你到底
    粒子滤波简介(转载)
    关于小波变换和Gabor变换的一些知识!
    基于Opencv的MeanShift跟踪算法实现
    opencv学习网页
    基于OpenCV库的Gabor滤波器的实现
    Mean Shift算法(CamShift)
  • 原文地址:https://www.cnblogs.com/davice/p/9446880.html
Copyright © 2011-2022 走看看