问题标签 [page-object-gem]

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 投票
2 回答
219 浏览

page-object-gem - 使用页面对象 gem 等待大型 SelectList 数组

我正在尝试在动态加载的SelectList元素中选择一个项目。

我正在使用 wait_until ,如下所示:

当我的列表只有几个项目时,这很有效。不幸的是,我的清单有时有3000项。发生这种情况时,上述等待需要几分钟才能返回(即使列表只需几秒钟即可填充)。

我也试过:

这并没有更好,我可以sleep 5解决这个问题,但我宁愿避免这种情况。

你能推荐性能更好的等待选项吗?

0 投票
1 回答
322 浏览

ruby - 如何使用页面对象 gem 和 ruby​​ 处理脚本标签

有了 watir,我可以获取特定脚本标签的 html

我正在寻找的字符串是唯一的,并且是较长字符串的一部分。我需要验证较长的字符串是否正确。现在我正在按照上述方法进行操作,但如果可能的话,我更愿意以页面对象的方式进行操作。我在其余代码中使用页面对象 gem 和 ruby​​。如果可能的话,想对这个脚本标签做同样的事情。如果不是,我会坚持使用 watir 方式。

一如既往地感谢您的帮助。

0 投票
1 回答
481 浏览

ruby - 在 Chrome 中使用 watir-webdriver 点击时未提交表单

我正在使用 ruby​​/cucumber/watir-webdriver 和 page-objects gem 来运行我的测试。我的测试通常在 Firefox 中运行,但决定尝试使用 chrome。虽然点击在 Firefox 中有效,但在 chrome 中无效。这是示例 html 代码:

在我的课程页面中,我将按钮声明如下:

并这样称呼它:

我确实看到按钮文本更改为“等待...”几秒钟,然后返回到“提交表单”,但似乎没有提交表单。如前所述,它适用于 firefox 并在手动单击时。似乎只是 Chrome 中的一个问题。任何想法如何解决它?我尝试单击 div,并尝试单击按钮两次但同样的问题。

一如既往地感谢您的帮助。谢谢。

0 投票
1 回答
393 浏览

ruby - 使用 `send` 检查元素是否存在

此代码应该将字符串作为输入来检查元素page_object是否存在。脚本必须引发异常以防它发现元素,如果没有则什么也不做。

示例页面对象:

剧本:

在这种情况下,我使用字符串partner_flag来提供函数并检查元素。Watir 失败了:

因为它需要在网页中找到该元素才能定义option. 是否有另一种定义方法option,或者有另一种方法来使用功能进行这种不存在检查send

0 投票
0 回答
214 浏览

watir-webdriver - 从页面对象定义变量我缺少什么?在 watir-webdriver 中出现未定义的错误

我正在尝试为我正在自动化的表单创建一个页面对象,并为“checkout_form”获取未定义的局部变量或方法,尽管我认为我已经定义了该变量。

这是我的页面对象页面:

在将使用我添加的页面对象的另一个页面上'require_relative“checkout-form.rb”'

我在那里设置了驱动程序:

并在此处与 pageobject 方法进行交互:

0 投票
1 回答
1046 浏览

ruby - 如何从 Ruby 中的页面对象中迭代 select_list

我有一个包含位置列表项的页面对象。

我想要一个位置列表,然后选择其中一个。就像是:

非常感谢 :)

0 投票
3 回答
1902 浏览

internet-explorer - Watir Webdriver IE 上的文本输入速度慢

我正在使用 Cucumber 和 Watir-Webdriver 创建一些自动化测试。我也在使用 PageObject gem。一些示例代码如下

我看到的问题是将文本输入到 IE(版本 11)中的用户名/密码字段中需要很长时间。我还用 Firefox 和 Chrome 进行了测试,文本立即输入。然而,在 IE 中,它逐个字符地输入文本,每个字符大约需要 10 到 15 秒才能输入。这大大减慢了我在 IE 中测试的运行时间。有人遇到过这种情况么?关于如何解决它的任何想法?我尝试使用 browser.speed = :zippy 选项,但这似乎没有帮助。

0 投票
1 回答
3424 浏览

ruby - 如何在 ruby​​ 中的另一个元素内搜索页面对象元素

我有一个包含 3 个 div 的地址(主地址、辅助地址、添加地址)的表单。每个 div 包含以下元素 (text_field):姓名、地址、电话。根据场景,我想编辑特定 div 的文本字段。

所以我有这种情况:

以及以下步骤定义:

现在我不确定的部分 - 地址页面

我怎样才能做到这一点,这样我就不必为所有 div 定义所有元素(div 的数量是动态的)?我需要知道的是,是否有一种方法可以搜索一个元素以使其位于另一个元素中。

谢谢 :)


编辑html 将如下所示:


第二次编辑重点是还要声明这一点:

“default.yml”看起来像这样:

我可以在哪里选择将填充哪个 div。这可能吗?

0 投票
1 回答
574 浏览

watir - 如何使用 Watir 页面对象方法单击树视图中的项目

我有以下 HTML,它表示具有两个元素 TREENODE1、TREENODE2 的树视图:

这个 id 的名称为 handler2,handler9 代表树中的加号。我的目标是能够使用 Watir 的页面对象 gem 选择其中一个加号来使树展开。以下 Ruby 代码提供对 TREENODE1、TREENODE2 两个元素的文本的访问: unordered_list(:folders, :id => 'foldersTree')

这将返回一个字符串 TREENODE1\nTREENODE2,它可以很容易地被拆分。不知道如何获得“处理程序”项目,因此我可以单击它们以展开树节点并显示下属。有什么想法吗?

0 投票
1 回答
128 浏览

ruby - 当 find_index 使用 page_objects 返回 nil 时测试失败的正确方法

我正在使用 find_index 来查找一个元素,然后单击它的链接。但是,当索引返回 nil 时,它会单击元素 0 的链接。是否有正确的方法来失败?

这是我的代码:

理想情况下,如果找不到,我希望它失败。目前它在返回 nil 时单击元素 0。一如既往地感谢您的帮助。