问题标签 [pageobjects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6394 浏览

java - 带有 JUnit 或 TestNG 的 Selenium 2 webdriver 用于 PageObject 设计模式

我们正在尝试在使用 Selenium 2 Webdriver 的测试框架中选择 Junit 和 TestNG。我们决定为此使用页面对象设计模式。

我相信 TestNG 通过使用 @BeforeSuite 注释将适合这种方法。为此描述了一个简单的例子。

  1. 访问谷歌页面。
  2. 搜索 gmail.com。转到 Gmail.com
  3. 测试/断言“创建帐户”文本。
  4. 使用 usn 和 pswd 登录。
  5. 测试/断言主页上的“收件箱”

页面对象:谷歌页面。登录页面首页

例如:实际的测试类。

GooglePage - 页面对象

LoginPage - 页面对象。

主页 - PageObject

我的问题是:

  • 我怎样才能拥有与 JUnit 类似的东西,如 >
  • 一系列用户交互
  • 测试/断言某事。
  • 再次导航到下一页。
  • 测试/断言某事。

我知道最新的 JUnit 版本 4.11 支持测试执行顺序。

“一系列工作流/交互(在实际测试之前)”方法的步骤也可以用@BeforeClass 进行注释。

但是这个注释强制我的方法是静态的,然后我在 @BeforeClass 方法中的所有页面对象都需要声明为静态的。

(上面的示例只是我想描述我的案例的一个示例。实际上,在断言它们之前,我有相当多的页面对象及其方法在此方法中被调用。)

希望我已经说明了我的情况。对此的任何输入或反馈将不胜感激。

谢谢

0 投票
1 回答
1424 浏览

ruby - 使用页面对象查找字段集

我试图找到一组复选框,但我需要在字段集中找到它们。html 是这样的(它是一个 gwt 应用程序,因此会生成大量内容:

我正在使用 Watir 和页面对象 gem。我正在尝试查找字段集,但没有字段集元素。从长远来看,我需要做的是找到每个复选框,获取它是否被选中的值,并将其与其名称一起存储在哈希中。

即使 page-object 有一个 fieldset 方法,我也不知道如何找到每个连续的复选框并获取值和标签。

0 投票
1 回答
1303 浏览

selenium - 测试数据应该从 PageObject 还是测试类传递?

我正在使用 Selenium Webdriver 开发自动化框架,遵循 PageObject 模式,其中有 2 层:

  • 测试类(测试规范)
  • PageObject 类(测试实现)

我的测试类包含 TestNG 注释方法(@Test@BeforeTest@AfterTest),我在其中创建 PageObject 类的对象并调用这些类中的方法,这些方法实际上将与 AUT 交互。

我将数据传递给测试的方式是包括:

  • 应用程序中元素的所有定位器(css​​/xpath/class/id 定位器)。
  • 所需的所有测试数据

在属性文件中(例如:testDataSet1.properties)。我正在创建一个HashMap<String, String>属性文件并将其作为参数传递给所有页面对象,这些页面对象将从哈希图中读取数据并在脚本中使用它们。我根本没有从测试类传递测试数据。

我的问题是,我不确定在 PageObjects 中读取测试数据是否合适。我感觉这种方法非常不灵活,因为我将测试数据绑定到 PageObjects 而不是将其绑定到测试。因此,当我需要执行数据驱动测试/在多次迭代中运行自动化套件时,这将不起作用。因为,目前如果我每次都需要使用不同的数据,我需要手动去更改哈希图中指定的键,这将从属性文件中获取不同的值。

有什么建议么?

0 投票
2 回答
4522 浏览

java - 字符串数组方法不返回数组对象 - Selenium WebDriver

请找到我的代码,它不返回数组对象值,它只返回一个数组对象

变量首先包含四个值(“name”,“name1”,“name2”,“name3”),然后将此字符串值转换为数组(actual_role),然后仅返回一个值(“name”)

请澄清上述代码的问题是什么

0 投票
1 回答
5910 浏览

c# - 使用 [FindsBy] 属性时,将 IWebElements 作为 C#/Selenium 中的集合

我正在尝试使用 OpenQA.Selenium.Support.PageObjects 中包含的 [FindsBy] 属性将多个 IWebElements 设置为集合,如下所示。假设我想在实例变量“MyElements”中保存所有“li”元素。

HTML

C#

我怎样才能使这项工作?

0 投票
2 回答
2545 浏览

pageobjects - 如何使用水豚页面对象中的 select_list 注释从下拉列表中选择一个选项

对于这样的 HTML:

当我尝试使用选择选项时

我收到错误消息

当我不使用索引值时它工作正常。

0 投票
1 回答
16525 浏览

java - Using PageObjects, Page Factory and WebDriverWait in Selenium WebDriver using Java

I've been using Selenium WebDriver to implement functional tests for some projects that I've worked with. I'm trying to use the Page Object design pattern with Page Factory to factor out my locators. I've also created a static WaitTool object (singleton) that implements several waiting techniques with optional timeout parameters.

My current problem is that I would like to use my wait methods before the PageFactory attempts to initialise the WebElements. The reason I would like to wait is because the PageFactory may try to initialise the page elements before they are available on the page.

Here is a sample PageObject:

Here is a sample TestObject:

I tend to put my logic in the Page Object as much as possible (including waits), as it makes the test cases much more readable.

0 投票
1 回答
8171 浏览

java - 如何使用 java 在 Selenium WebDriver 项目中表示页面对象导航

我在一些地方读到,使用 WebDriver API 时在页面之间导航通常是由页面对象完成的,该页面对象返回在导致导航发生的操作时应返回的下一页。

该解决方案非常适用于总是返回相同页面的操作(例如,SearchPage.search() 返回新的 ResultPage),但是当某个操作可能会根据某些输入或状态将用户置于不同的页面时会发生什么情况。Java 不允许基于返回类型重载方法。那么如何做到这一点呢?

我粗略地尝试实现一个Navigator对象,该对象可用于Page根据预期结果返回通用对象。

导致页面从一个页面对象移动到另一个页面对象的操作将实现如下方法:

一个测试看起来像这样:

但不幸的是,我无法让导航器根据用户输入转到任何页面。有没有办法做到这一点,或者有另一种方法可以做到这一点?

资源:

0 投票
1 回答
138 浏览

ruby - 从模块访问 JS-widget

我尝试从我的模块访问自定义 JS-widget。基本页面类只包括 PageObject、DataMagic 和 RSpec::Matchers。

我的课

模块

JQuery UI 日期选择器小部件

和步骤:

运行此测试时,我看到以下错误:

那么,如何从我的模块访问该小部件?

UPD:浏览器从这里开始hooks.rb

0 投票
3 回答
253 浏览

java - 如何使类的返回类型动态

我们使用 PageObjects 模式进行自动化。我有功能,

返回类型应该是我们传递给 SelectTab() 的类名,因为类名是动态的。

我该怎么做?