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

ruby - 访问字段集中的 select_list 时 pageobject 上的 SyntaxError

我试图通过 Cheezy 的页面对象访问字段集中的 select_list。

总的 html 太长而无法发布(仅字段集就超过 200 行),但我可以提供带有所有 id 等的行。

字段集:

选择列表:

我尝试使用的页面对象中的行:

我尝试运行黄瓜测试时遇到的错误:

当我尝试使用此行设置 select_list 时会发生此错误:

这条线适用于其他页面,所以我相当肯定这不是问题的一部分。我确信这是 pageobject 行中的一个简单语法,但我找不到任何使用 pageobject 的文档,就像我正在尝试的那样。我能找到的唯一参考是在我问过的上一个问题中:Accessing a table within a table (Watir/PageObject)

谁能告诉我我做错了什么?

预先感谢您的帮助。

更新:重现问题的示例:

给定一个带有 html 的页面:

一个页面对象定义为:

运行以下代码:

生成以下异常:

0 投票
1 回答
218 浏览

ruby - 制作 1 个页面对象两个元素 ID 到 1 个页面对象变量

我正在将页面对象 Gem 与 Watir 一起使用。在测试期间,我发现我有一个字段具有相同的内容,显示在同一位置但具有单独的唯一 ID。不同之处在于您到达页面之前。

我尝试使用 Xpaths:


但是遇到了脚本错误。

它们是静态 ID,但我想将它们强制转换为一个变量,因为这将允许我使用“populate_page_with”功能。

我目前有一个冗长的方法,但我正在寻找一种更有效的方法来处理页面对象功能。

有谁知道这样做的方法?

0 投票
1 回答
517 浏览

javascript - 使用纯 javascript 检索未决 AJAX 请求的数量

我正在尝试使用纯 javascript检索待处理的 AJAX 请求的数量。这是为了帮助为 Cheezy 的页面对象 gem 制作一个模块,以便我可以在 GWT 应用程序中等待 AJAX 请求。我无法切换到使用 JQuery 或任何其他 javascript 系统,因为这是在 GWT 中完成的。

我发现这段代码告诉我 javascript 是否完成,但我对 javascript 或如何使其适应这个系统知之甚少。

Cheezy 声明您需要有一个字符串来返回待处理的 AJAX 请求的数量。当达到 0 时,它将等待完成。所以我想如果我能以某种方式让这个代码输出 1 用于任何不为零的东西,然后当它最终为 0 时输出 0,我将能够完成这项工作。

0 投票
1 回答
99 浏览

ruby - 连续的 javascript 弹出窗口 - 再次确认

页面对象 gem 是否支持背靠背确认两个弹出窗口?换句话说,假设您有一个弹出窗口询问您是否喜欢奶酪,是或否。鉴于用户选择是,会出现另一个弹出窗口,上面写着“你将要回答是”,包括一个确定按钮。

有没有办法做这样的事情:

不幸的是,这对我的应用程序不起作用。因此,我尝试直接使用 selenium-webdriver 处理第二个弹出窗口。尽管如此,调用@browser.switch_to.alert会引发 NoAlertPresentError 说“没有打开 Javascript 模态对话框”。有人遇到过这样的事情吗?

0 投票
3 回答
3507 浏览

selenium-webdriver - 如何处理 Element 不再附加到页面对象中的 DOM?

我正在尝试使用页面对象测试网站,当我执行脚本时,我在调用时间歇性地收到Element is no longer attach to the DOM (Selenium::WebDriver::Error::StaleElementReferenceError)错误消息一个函数。

如果有任何建议,我该如何克服这个问题?

0 投票
2 回答
301 浏览

page-object-gem - 尝试运行包含页面对象的测试时出现语法错误

我最近拿起了 page-object gem,但是当包含这个 gem 时,我无法让我的测试(基于 Cucumber/Selenium)运行。

根据 gem list,我安装了 gem:

我的 env.rb 文件包括:

但是,当我尝试运行测试时,我收到以下错误:

/Library/Ruby/Gems/1.8/gems/page-object-0.9.1/lib/page-object/widgets.rb:32:语法错误,意外'=',期待'|' ...dget_tag do |name, identifier={:index => 0}, &block| ^ /Library/Ruby/Gems/1.8/gems/page-object-0.9.1/lib/page-object/widgets.rb:32:语法错误,意外',',期待kEND ...ame,标识符= { :index => 0}, &block| ^ /Library/Ruby/Gems/1.8/gems/page-object-0.9.1/lib/page-object/widgets.rb:122:语法错误,意外的 kEND,期待 $end (SyntaxError) /Library/Ruby/Site /1.8/rubygems/core_ext/kernel_require.rb:51:ingem_original_require' /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:51:in要求' /Library/Ruby/Gems/1.8/gems/page-object-0.9.1/lib/page-object.rb:10 />图书馆/Ruby/站点/1.8/rubygems/core_ext/kernel_require.rb:116:ingem_original_require' />Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:116:in需要' /Users/garethbragg/dev/trade-finder/test/cucumber/features/support/env.rb:6 /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/ cucumber/rb_support/rb_language.rb:122:in load' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/rb_support/rb_language.rb:122:inload_code_file' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:180:in load_files load_file' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:83:in! ' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:82:in each' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:82:inload_files!/Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime.rb:183:in load_step_definitions' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime.rb:42:inrun!/Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/cli/main.rb:47:in execute!' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/cucumber:13 /usr/bin/cucumber:23:inload' /usr/bin/cucumber:23

如果我在我的任何课程中包含 PageObject,我会收到以下信息:

未初始化的常量 Home::PageObject (NameError) ./lib/Home.rb:4 /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:51:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:51:inrequire' /Users/garethbragg/dev/trade-finder /test/cucumber/features/support/env.rb:2 /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/rb_support/rb_language.rb:122:in load' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/rb_support/rb_language.rb:122:inload_code_file ' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:180:in load_file' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:83:inload_files!' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:82:in each' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:82:inload_files!/Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime.rb:183:in load_step_definitions' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime.rb:42:inrun!/Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/cli/main.rb:47:in execute!' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/cucumber:13 /usr/bin/cucumber:23:inload' /usr/bin/cucumber:23

任何建议将不胜感激。

0 投票
2 回答
220 浏览

watir - 如何从链接集合中获取某些特定链接

我正在使用 watir-webdriver 有几行相同的代码,如下所示:

我需要获取 p 标签中包含的第一个链接和 p 标签中包含的第二个链接,因此使用页面对象我添加了以下代码:

...

最后一行会给我两个链接:http://www.somesite2.comhttp://www.somesite2.com 不幸的是,我无法在 css 中指出:last/:first 等。

第二个链接可以通过将 css 更改为:

但是我怎样才能从这些块中获得第一个链接呢?当然,我可以获得两个链接并使用每 2 个链接,但也许有替代解决方案?

0 投票
1 回答
143 浏览

page-object-gem - 如何为将在执行期间找到的元素的嵌套属性(子项)编写 dsl

我有分页页面。有几个带有命名链接的 list_item 元素。每个列表项都有一些属性,我想在找到具有所需链接名称的页面后使用这些属性。

但据我所知,我不能这样写:

然后使用例如:

因为我得到了对象 the_thumb 的 app_name_link 不存在的错误。

你能给点建议吗?我想为这些属性构建 DSL 并在之后使用它。但现在我只能使用:

所以每次我想用这个属性进行操作时,我都必须使用 :class => /app-name/ 。

0 投票
2 回答
1762 浏览

ruby - 如何使用页面对象自动确认 ruby​​ 中的模式?

我有一个带有删除链接的标准 Rails 应用程序。此删除链接带有浏览器弹出模式(使用 railsconfirm选项)。

我目前正在尝试使用 Cucumber、Selenium-Webdriver(或 Watir-Webdriver,尚未决定)和页面对象 gem 来测试删除功能。

触发模式后,我在页面上所做的任何事情都会给我以下错误:

我一直在寻找,但找不到处理这种情况的方法。如果可能,我想继续使用PageFactory页面对象 gem 中的模块。

如何关闭/接受模式?

0 投票
2 回答
1516 浏览

ruby - 从模块访问类页面对象时出现未定义的方法错误

我正在尝试访问中定义的类方法Module,我可以调用函数,但函数具有页面对象元素,该元素执行一些操作,如单击,我收到以下错误:

这是我的文件结构:

./lib/calender_util.rb

./home_page.rb

部分env.rb

此外; 我已经多次定义了 include/require,一旦解决了我就会起飞。