问题标签 [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 投票
3 回答
2679 浏览

ruby-on-rails - Capybara 与页面对象 gem 的集成

是否可以使用页面对象 gem 和 capybara 来自动化 Ruby on Rails 测试?当我在启动测试后尝试访问页面对象时,我收到以下错误:

这是有道理的,因为我认为我必须将水豚的浏览器实例传递给页面对象,不确定是否有其他人之前尝试过。

0 投票
3 回答
767 浏览

ruby - 页面对象中的重复复选框未定义?

我正在尝试单击使购买按钮出现的复选框。当我尝试使用它时,我收到“NoMethodError: undefined method 'eula' for Cart:0x101f54810”错误。我认为这可能是因为有两个相同的复选框,但我不确定。

HTML:

我的课:

更新:我正在更改对象类型以使其正常工作。Element 是我尝试的最后一种类型。我将示例改回复选框(我最初的尝试)。感谢您指出了这一点。

0 投票
1 回答
286 浏览

ruby - Ruby Selenium PageObjects 模板

如果可能的话,是否有人有使用 pageObject 设计模式设置硒测试的模板。

我想做的是创建一个打开浏览器的父类。然后我可以将该浏览器变量传递给其他页面的子类,例如 LoginPage 等。

如果有人可以提供有关这方面的更多信息,那就太好了。

我的主要问题是让子类继承浏览器变量。

我真的很感激这方面的一些帮助,欢迎任何答案帮助我指出正确的方向。

干杯,乔恩

0 投票
2 回答
2223 浏览

java - 使用 PageFactory 初始化和使用 WebDriver PageObject 的最佳方法是什么?

通过 WebDriver 和 PageFactory,我们正在使用 Java 实现一个新的自动化项目,并且我们一直在尝试各种创建 PageObjects 的方法。我们被一些不同的想法所困扰,并希望确保我们不会陷入困境。

是否最好,如 WebDriver 文档中所述,向 PageFactory 提供初始化的 WebDriver,以及创建新 PageObject 的类模板?

但是,既然 PageObject 知道很多关于它自己的信息,比如它的 URL,我们可以不让 Page Object 来做这项工作吗?

我想我认为让 PageFactory 进行实例化与仅进行初始化相比没有太大的优势,但是如果有理由的话,我不想偏离架构师的标准设置。

谢谢

0 投票
1 回答
2187 浏览

c# - 在 C# 中使用 Selenium WebDriver 仅定位非隐藏元素

我在网页上有一组记录,当单击记录时,会显示一个“删除”链接(实际上是“未隐藏”,因为它实际上总是在那里)。

在尝试访问此“删除”链接时,我正在使用它的值。

当我使用Driver.FindElement时,它会返回第一个删除链接,即使它是隐藏的,因此无法单击它(也不应该因为它不是正确的链接)。

所以,我基本上想做的就是只找到非隐藏的链接。下面的代码有效,但是当它遍历每个删除链接时,我担心它可能效率低下。

有没有更好的办法?

0 投票
5 回答
27317 浏览

selenium-webdriver - Selenium WebDriver 页面对象

关于 selenium webdriver 中的页面对象的快速问题。我们的网站非常动态,有很多 ajax 和各种身份验证状态。很难弄清楚如何定义每个页面对象但是可以说我已经弄清楚并定义了几个代表我们网站的页面对象。

你如何处理从页面到页面的交叉。因此,我为我的主页获取了一个页面对象,为我的帐户页面获取了一个页面对象,为我的结果页面获取了一个。然后我需要编写一个遍历我所有页面的测试来模拟用户执行多个操作。

你怎么说给我一个 HomePage 对象来创建一个新的使用 -> 然后获取一个帐户页面对象来执行一些用户操作 - 然后获取一个结果页面对象来验证所有来自单个脚本的这些操作。

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

谢谢

0 投票
1 回答
456 浏览

ruby - Page Objects中元素的接口应该抽象多少?

我有一个名为 LineItemsPage 的页面对象

我像这样使用它:

我想知道是否应该通过在我的 LineItemsPage 类中添加以下内容来抽象点击:

然后像这样使用它:

我正在寻找最佳实践,特别是关于页面对象或一般的 Ruby。我觉得通过 using 封装接口add_item()有点远,但我想知道我是否不知道如果我不这样做可能会遇到问题。

0 投票
3 回答
2001 浏览

ruby - 动态页面网址

我有一个带有动态 URL 的页面。我们称之为查看帖子页面。帖子 1的网址是site.com/post/1帖子 2的网址是site.com/post/2

这就是我目前所做的,以检查我是否在正确的页面上。

这页纸:

黄瓜步骤:

有没有更好的办法?您甚至会费心检查整个 URL,还是只检查site.com/post/一部分?

我正在使用最新的页面对象gem (0.6.6)。

更新

更大的问题是直接进入具有动态 URL 的页面。

这页纸:

黄瓜步骤:

我现在要做的是将 Cucumber 步骤更改为:

如果页面有办法知道它的 ID,那就太好了,但我还没有想出如何去做。

0 投票
3 回答
4062 浏览

ruby - Site Prism,Capybara:带变量的选择器

我正在使用site_prism在水豚中实现页面对象模型。它看起来很有趣。

如何指定选择器,例如“[data-id='x']”,其中 x 是整数?像这样的东西:

然后在我的测试中:

0 投票
1 回答
2058 浏览

ruby-on-rails - 对 Cucumber 上的多个功能使用相同的浏览器实例时出错

我在为 Cucumber 驱动程序创建浏览器实例时遇到问题。如果我在“Before do”内的 env.rb 上创建对象:

…工作正常,为每个功能打开一个新浏览器并在“完成后”关闭它。

这会减慢执行速度,因为新浏览器会启动并关闭每个功能。但是,如果我从“Before do”中创建@browser,以便为所有功能提供相同的浏览器会话,则会出现以下错误:

...根本不启动任何测试。我正在使用页面对象 gem,ruby-on-rails ......

你能告诉我我在做什么错吗?非常感谢!