问题标签 [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 回答
859 浏览

singleton - 我的所有课程都可以单例吗?

我正在实施一个项目,我正在测试我的 UI。因此,我的 UI 的每个部分都是一个单独的类(Seleniums 页面对象模式)。现在,因为它只是我正在测试的一个网页,据我说,我的 UI 组件只有一个实例,虽然它们确实改变了状态,但我看不到这些组件的多个实例浮动的好处.

所以,我很想把它们都设为单例,这是一种不好的做法吗?

例如 -

|------------------------------------------------- ------------|
| |
| |
|------------------------------------------------- ------------|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
|------------------------------------------------- ------------|

在整个用户会话期间,所有这些部分都将保留在我的页面上,但它们可能会更改状态,例如切换、调整大小、更改其中的数据等。

有什么想法吗?

0 投票
1 回答
1683 浏览

ruby - 为什么 ruby​​ 中的页面对象名称错误?

所以这是我的错觉......我正在尝试让页面对象启动并运行,我之前已经做过一千次了,但我现在遇到了一个名称错误。是早上太早还是我在这里错过了什么?它不断抛出 NameError

运行黄瓜

env.rb 有

看屏幕截图

在此处输入图像描述

0 投票
4 回答
2984 浏览

c# - 用于 PageObject 模式的 Selenium WebDriver Recorder

我知道有 Selenium IDE 和 Selenium Builder 作为 Firefox 插件来记录操作并将它们导出为例如 C#-Code。

但是是否还有一个工具可以帮助您按照 PageObject 模式创建 Selenium (2) WebDriver 测试代码?我知道这会很困难,因为程序必须知道应该如何实现抽象。

据我所知,这样的工具不存在吗?但是,由工具支持的创建 Selenium WebDriver PageObject-Code 的最佳方法是什么?

也许使用 Selenium 构建器只是通过 id、类名等创建引用并在我的代码中手动实现它们?这可能比我自己决定什么可以精确识别元素要快一些。但是为什么 Selenium Builder 的开发者动态创建元素引用

而不是 FindBy 属性?

这些元素将是可重用的,并且代码会更短。

0 投票
1 回答
2093 浏览

ruby - 访问表中的表 (Watir/PageObject)

我正在使用 Cheezy 的 PageObject 运行 Watir-webdriver 进行黄瓜测试。我是 ruby​​、测试、pageobjects 和 watir 的新手。

我正在尝试访问一张桌子。具体来说,我正在尝试单击第 7 列中的图像。

这是我的代码:

运行此代码后,很明显它认为表格(列、行、所有内容)是一个单元格。查看 html 后,似乎其中还有另一个表。该表是某种类型的 gwt 表。这意味着我拥有的 ID 不是我想要的表,而是包含我想要的表的表。有没有得到我想要的东西?例如:

还是我必须直接操作 html?因为,可悲的是,似乎没有太多可操作的东西,而且我看不到通过原始 java 代码设置一个类(每个页面上的多个这些表)。如果您能想到另一种单击图像的方式,我会很高兴听到

先感谢您

0 投票
2 回答
340 浏览

webdriver - 页面对象 - 方法的抽象级别

我在互联网上搜索了一下,但认为我可以通过在 stackoverflow 上发布并查看是否有任何意见来获得一些见解。

我想知道是否有人认为在这两种设置页面对象的方式中哪个更受欢迎:

...和...

最初,我认为第二种方式会更好,因为如果登录流程由于某种原因发生变化(登录不太可能发生这种情况,但您可以推测其他类型的表单会发生这种情况),您可以更新 login() 方法和这个更改将影响所有需要登录的测试。

但是,如果您想在 submit() 之前验证错误条件或更多内容,则第二种解决方案不够灵活。

欢迎任何见解。

0 投票
3 回答
24638 浏览

python - ImportError:没有名为 base 的模块

我正在尝试为我的第一个登录测试实现 PageObject 模式。在运行它时,我收到以下错误:

这是python路径:

Pythonpath:PYTHONPATH="${PYTHONPATH}:/usr/lib/python2.7/"

导出 PYTHONPATH

就我的第一次测试而言,很多代码都是复制粘贴的,也许它有问题,但我无法得到它。对关于这一点的任何建议都会非常满意。

下面也是我所谓的 PageObject 实现的结构和内容:

  1. 用户界面
    • 根据
      • __ 初始化 __ .py
      • 基页.py
      • 配置文件
      • 包装器.py
    • 页面
      • __ 初始化 __ .py
      • 登录页面.py
    • 测试
      • __ 初始化 __ .py
      • test_login.py
    • __ 初始化 __ .py

ui/__ 初始化 __ .py

ui/base/__ 初始化 __ .py

ui/base/basePage.py

ui/base/configs.py

ui/base/wrapper.py

ui/pages/__ 初始化 __ .py

ui/pages/loginPage.py

ui/tests/__ 初始化 __ .py

ui/tests/test_login.py

0 投票
1 回答
176 浏览

python - Make an assertion that error text is correct

When testing website login without credentials we're getting a tooltip message that email and password should be entered. I need to make an assertion that the text of the error is relevant when we try to login without any credentials. Unfortunately,I'm not sure how can I do so.

You see, in the LoginPage class there is a variable for error message box: tool_tip = '.error-container'. And in the test_login_without_credentials I have added the message variable. But the error message box has no static error text and it is difficult for me to make right assertions for each case. For instance, if you have entered no credentials you receive the following message:

Another example when you have entered invalid password:

And one more example when the invalid password is entered:

I'm using the PageObject pattern for testing. Here is the part of the loginPage.py file containing the description of testing without credentials:

And here is the testLogin.py itself:

0 投票
2 回答
1636 浏览

selenium-webdriver - 我们可以使用页面对象处理浏览器 cookie 吗?

我们可以在执行时在浏览器中处理 cookie吗?

实际上,我需要从浏览器获取 cookie,并且需要在场景执行之间设置修改后的 cookie。我们可以使用页面对象来做到这一点吗?

我检查了页面对象 gem,我们有 gem 来清除 cookie,但我需要获取和设置一些 cookie 值。请有任何建议....,

0 投票
1 回答
1005 浏览

selenium-webdriver - 我们可以使用页面对象执行滚动吗?

我们可以使用页面对象执行滚动吗?

实际上我需要根据元素滚动网页(向上/向下)。如何使用页面对象执行。

我正在使用 Selenium 网络驱动器来启动浏览器并使用页面对象来自动化网页。

有什么建议么???

0 投票
1 回答
987 浏览

selenium - 如何为业务功能重用 selenium 页面对象

我们使用 selenium 页面对象模式为每个页面构建模型。但是为了实现一个业务功能,它将涉及到几个页面。例如,创建一个用户,它涉及到 AgreementPage 和 CreateUserPage 如下所示

在我们的测试中,许多测试用例需要为前置条件创建一个用户。为了重用这些代码,我们创建了一个新的服务层。我们将代码移动到 UserService.CreateUser() 中。那么我们的测试脚本就变成了

因为大多数功能涉及两个或更多页面,所以页面对象进入服务层。在测试脚本层,我们似乎在测试服务。但我们确实认为服务名称不友好,不喜欢与域语言交谈。

我认为这是进行自动化测试的非常常见的方法,对吧?您如何命名服务层或如何处理继续使用的页面对象?