当前位置: 首页 > 知识库问答 >
问题:

Selenium WebDriver页面对象

堵恺
2023-03-14

人们是如何做到这一点的?

谢谢

共有1个答案

澹台俊晖
2023-03-14

当您模拟用户在浏览器的URL栏中输入一个新URL时,测试类负责创建它所需的page对象。

另一方面,当您在页面上执行某些操作时,浏览器会指向另一个页面(例如,单击链接或提交表单),那么该页面对象就有责任返回下一个页面对象。

由于我对主页、帐户页和结果页之间的关系了解不够,无法准确地告诉您它在站点中的运行情况,因此我将使用一个在线商店应用程序作为示例。

假设你有一个搜索页面。当您在SearchPage上提交表单时,它将返回一个ResultSpage。当你点击一个结果时,你会得到一个ProductPage。因此类看起来如下所示(缩写为相关方法):

public class SearchPage {

    public void open() {
        return driver.get(url);
    }

    public ResultsPage search(String term) {
        // Code to enter the term into the search box goes here
        // Code to click the submit button goes here
        return new ResultsPage();
    }

}

public class ResultsPage {

    public ProductPage openResult(int resultNumber) {
        // Code to locate the relevant result link and click on it
        return new ProductPage();
    }

}

执行这个故事的测试方法如下所示:

@Test
public void testSearch() {

    // Here we want to simulate the user going to the search page
    // as if opening a browser and entering the URL in the address bar. 
    // So we instantiate it here in the test code.

    SearchPage searchPage = new SearchPage();
    searchPage.open(); // calls driver.get() on the correct URL

    // Now search for "video games"

    ResultsPage videoGameResultsPage = searchPage.search("video games");

    // Now open the first result

    ProductPage firstProductPage = videoGameResultsPage.openResult(0);

    // Some assertion would probably go here

}

如您所见,页面对象的“链接”,每个对象返回下一个。

 类似资料:
  • 本章是一个针对页面对象设计模式的教程引导。 一个页面对象表示在你测试的WEB应用程序的用户界面上的区域。 使用页面对象模式的好处: 创建可复用的代码以便于在多个测试用例间共享 减少重复的代码量 如果用户界面变化,只需要修改一处 6.1. 测试用例 下面是一个在python.org网站搜索一个词并保证一些结果可以找到的测试用例。 import unittest from selenium impor

  • 我在Selenium 1(又名Selenium RC)中编写了以下代码,用于使用java滚动页面: Selenium 2(WebDriver)中的等效代码是什么?

  • 问题内容: 今天,当我使用Selenium WebDrive时,出现错误。我的平台是mac osx。这是我的异常日志。 我不知道为什么会这样。我的Firefox路径是默认路径。谢谢您的帮助!! 问题答案: WebDriver使用端口7054(“锁定端口”)作为互斥体,以确保我们不会同时启动两个Firefox实例。您创建的每个新实例将在启动浏览器之前等待互斥体,然后在浏览器打开后立即释放互斥体。 因

  • 问题内容: 我真的很喜欢硒2按照惯例如何促使您使用PageObjects作为POJO,然后简单地使用PageFactory实例化此类中的字段。 我发现的限制是,我们在许多不同的页面上重用了许多元素。最大的问题是,这些重用的组件在不同页面上显示时,其ID /名称不相同;但是我们将为每个测试运行的测试是相同的。 例如,我们在许多地方收集日期。因此,此示例页面对象可能是(删除了“月,日”字段): 然后,

  • 对登录页面使用页面对象模型和页面分解,在登录页面中获取对象。java和操作在LoginScript中。JAVA我有一个java。“Ele_usernamedit.clear();”行中的lang.NullPointerException请帮助检查代码。谢谢 这是我的登录页。爪哇: 这是我的登录cript.java:

  • Jquery Mobile支持包含历史回退按钮的自动ajax读取外部页面的功能,一组页面转场动画,以及将页面显示为对话框的简易工具。