`
duoluohua
  • 浏览: 14043 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

WebDriver——PageObject

 
阅读更多

package com.ahchoo.automation.page;

 

importorg.openqa.selenium.By;

importorg.openqa.selenium.WebDriver;

importorg.openqa.selenium.WebElement;

public class BaiduIndexPage {

privateWebDriver driver;

privatefinal String url = "http://www.baidu.com";

publicBaiduIndexPage(WebDriverdriver) {

this.driver=driver;

driver.get(url);

}

 

publicSearchResultPage searchFor(String term) {

// Baidusearch input id is "kw"

WebElement searchField = driver.findElement(By.id("kw"));

searchField.clear();

searchField.sendKeys(term);

searchField.submit();

returnnew SearchResultPage(driver);

}

}

 

package com.ahchoo.automation.page;

importorg.openqa.selenium.WebDriver;

 

public class SearchResultPage {

privateWebDriver driver;

publicSearchResultPage(WebDriver driver) {

this.driver=driver;

}

public StringgetTitle() {

returndriver.getTitle();

}

publicString getContent() {

returndriver.getPageSource();

}

}

 

 

package com.ahchoo.automation;

importstatic org.junit.Assert.*;

importorg.junit.After;

importorg.junit.Before;

importorg.junit.Test;

importorg.openqa.selenium.WebDriver;

importorg.openqa.selenium.firefox.FirefoxDriver;

importcom.ahchoo.automation.page.BaiduIndexPage;

importcom.ahchoo.automation.page.SearchResultPage;

public class SearchTest {

privateWebDriver driver;

@Before

public voidsetUp() {

driver = newFirefoxDriver();

}

@After

public voidtearDown() {

driver.close();

}

 

@Test

public voidsearchTest() {

BaiduIndexPage home = new BaiduIndexPage(driver);

SearchResultPage searchResult = home.searchFor("pizza");

assertTrue(searchResult.getTitle().contains("pizza"));

assertTrue(searchResult.getContent().contains("pizza"));

}

}

f

package com.ahchoo.automation.page;

importorg.openqa.selenium.WebDriver;

importorg.openqa.selenium.WebElement;

importorg.openqa.selenium.support.FindBy;

importorg.openqa.selenium.support.How;

 

public class BaiduIndexPage {

privateWebDriver driver;

privatefinal String url = "http://www.baidu.com";

 

publicBaiduIndexPage(WebDriverdriver) {

this.driver=driver;

driver.get(url);

}

@FindBy(how = How.ID, using="kw")

privateWebElement searchField;

 

publicSearchResultPage searchFor(String text) {

// Wecontinue using the element just as before

searchField.sendKeys(text);

searchField.submit();

returnnew SearchResultPage(driver);

}

}

 

分享到:
评论

相关推荐

    python+selenium+ddt关键字驱动搭建自动化测试框架(csdn)————程序.pdf

    `setUp` 方法初始化Selenium WebDriver实例,并创建Page Object对象。`tearDown` 方法用于在每个测试用例结束后关闭浏览器。测试用例包含 `check` 方法,该方法调用了Page Object中的方法来模拟用户搜索行为。 7. ...

    Selenium之Page Object Model 设计理念 ——Case篇

    总结来说,"Selenium之Page Object Model 设计理念 ——Case篇"主要讲解了如何在POM模式下编写测试用例。通过将页面元素和操作封装到Page对象中,测试用例的编写变得简洁且易于维护。结合数据驱动,我们可以灵活地...

    CucumberJVM:带有Gradle的CucumberJava和Selenium Webdriver演示

    总的来说,这个项目提供了一个完整的示例,展示了如何使用CucumberJVM、Gradle、Selenium WebDriver和PageObject模式进行BDD测试,同时利用Google-Guice进行依赖管理。开发者可以通过学习和理解这个项目,掌握这些...

    Selenium自动化测试:基于Python语言.azw3

    Selenium WebDriver 入门知识、Selenium Python脚本、使用unittest 编写单元测试、生成HTML格式的测试报告、元素定位、...Page Object与数据驱动测试、Selenium WebDriver的特性、第三方工具与框架集成等核心技术...

    selenium-webdriver-crystal:Crystal编程语言的Selenium Webdriver客户端

    - 使用Page Object模式,将页面元素和操作封装为独立的对象,提高代码可读性和可维护性。 - 利用Gherkin或其他BDD(行为驱动开发)工具编写清晰的测试用例。 - 适当地使用异步编程,以应对可能的网络延迟和浏览器...

    .NET软件测试自动化之道——中文版

    此外,针对测试用例的设计模式,如页面对象模式(Page Object Pattern)和测试工厂模式(Test Factory Pattern),也被详细讲解,帮助读者构建出可维护且易于扩展的测试框架。 最后,书籍也触及了自动化测试的挑战...

    chromedriver-win64_127.0.6510.4.zip

    同时,为了提高测试效率,可以使用测试框架,如JUnit(Java)、pytest(Python)等,配合Page Object模式和数据驱动测试,编写可复用、可维护的测试脚本。 总之,"chromedriver-win64_127.0.6510.4.zip"是一个用于...

    SELENIUM 2 自动化测试实战 基于PYTHON语言

    5. **页面对象模型(Page Object Model)**:这是一种设计模式,将页面的元素和相关的行为封装在独立的对象中,提高了代码的可维护性和可重用性。 6. **等待策略**:在自动化测试中,因为页面加载时间的不确定性,...

    python的Selenium自动化测试

    同时,为了提高测试效率,可以使用Page Object模式设计测试用例,使代码更易于维护和扩展。 总的来说,Python的Selenium自动化测试为Web应用的测试提供了强大而灵活的工具。通过掌握Selenium的使用,我们可以构建...

    selenium API

    标题 "Selenium API" 指的是一个广泛使用的自动化测试工具——Selenium WebDriver的API(应用程序编程接口)。Selenium允许开发者编写脚本来控制浏览器,执行各种网页交互操作,如点击按钮、填写表单、导航等,以...

    selenium包

    6. **扩展与维护**: 根据实际需求,可以编写更复杂的测试框架,例如使用 Page Object 模式提高代码可读性和可维护性。 7. **报告与调试**: 利用测试框架生成详细的测试报告,并利用日志或调试工具进行问题排查。 ...

    chromedriver-win64_124.0.6355.0.zip

    10. **最佳实践**:为了提高测试效率,可以使用Page Object模式来组织测试代码,将页面元素和它们的操作封装起来,降低脚本维护成本。同时,利用测试套件和测试框架(如JUnit、pytest等)进行多测试脚本的管理和执行...

    Selenium2自动化测试实战 基于Python语言

    7. **页面对象模型(Page Object Model)**:这是一种最佳实践,用于提高代码复用性和可维护性,书中可能会详细解释如何设计和实现页面对象模型。 8. **数据驱动测试**:利用CSV或其他数据源,实现测试数据和测试...

    chromedriver-win64_117.0.5898.0.zip

    同时,使用Page Object模式进行页面抽象,可以提高代码的可读性和可维护性。 总之,"chromedriver-win64_117.0.5898.0.zip"是一个用于Windows 64位系统Chrome浏览器自动化测试的关键组件,它与Selenium WebDriver...

    geckodriver winodw64位

    同时,为了提高测试效率,可以使用测试框架如JUnit或pytest,结合Page Object模式来编写结构化的测试用例。 综上所述,"geckodriver win64位"是Selenium自动化测试中用于控制64位Windows系统上的Firefox浏览器的...

    selenium-2.43.0.tar.gz

    通过结合Page Object模式,可以将页面元素和其行为封装,提高代码可维护性。此外,还可以利用TestNG或JUnit等测试框架,实现测试用例的组织和执行,以及报告的生成。 然而,值得注意的是,尽管Selenium 2.43.0是一...

    selenium_153.zip

    - 使用Page Object模式,将页面元素和操作封装,降低脚本的耦合度。 - 利用等待机制,如`WebDriverWait`,避免因页面加载延迟导致的测试失败。 总结,selenium_153.zip这个资源包涵盖了Selenium的基本使用和核心...

    前端开源库-selenium-query

    通过配合Page Object模式,我们可以将测试代码与页面结构解耦,提高代码的可重用性和可维护性。 总结来说,Selenium Query是前端自动化测试中的利器,它以jQuery式的API简化了Selenium WebDriver的使用,让测试代码...

    chromedriver_linux64_93.0.4577.63.zip

    3. 在编写测试脚本时,应尽量遵循良好的编程实践,如使用Page Object模式提高代码复用性,以及处理异常情况以增强测试的健壮性。 4. 考虑使用测试框架,如JUnit(Java)、pytest(Python)等,来组织和管理测试用例...

    基于Java的Selenium文件

    11. **Page Object Model(POM)**: 这是一种设计模式,提倡将每个页面的元素和操作封装成一个独立的Java类,以提高代码的可维护性。POM使得测试脚本更易于理解和扩展。 12. **Grid分布式测试**: 对于大规模的测试...

Global site tag (gtag.js) - Google Analytics