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

  • 相关阅读:
    理解inode
    贝叶斯公式与拼写检查器
    《C程序设计语言》第四章 函数和程序结构
    MIT《计算机科学与编程导论》课堂笔记
    很牛的牛顿迭代法
    开发一个小工具重温C#经典问题
    斯坦福《编程方法学》环境搭建及常见问题
    看Sybase官方手册学索引工作原理
    学习编程的方法、软件和工具
    大师里奇留给了我们什么
  • 原文地址:https://www.cnblogs.com/davice/p/9446880.html
Copyright © 2011-2022 走看看