问题标签 [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.
ruby - 页面对象 gem - 何时生成所需的方法?
我相信在使用页面对象 gem 时,有一个方法调用
生成三种方法 - sym
,sym_element
有sym?
没有人能解开以下疑惑?
- 这些方法究竟是何时创建的,即页面对象类何时使用
define_method
来实现这些方法? 这些方法调用 (
/li>link(:sym, text: "example.com"
) 直接存在于类中,而不被包装在另一个方法中!!是否允许直接在类中包含语句而不被包装在方法中?如果是这样,这些陈述有什么用?我可以
link(:sym, text: "example.com"
在课堂上的方法中调用 ( ) 吗?这样做会引发NoMethodError
!! 这是不允许的吗?
ruby - 页面对象集合
我正在title
使用以下语法基于属性形成链接集合
片段 - 1
然后我尝试单击每个链接(集合中有 2 个)并从弹出的窗口中获取一些信息
片段 - 2
这对于第一个链接运行良好,但它在语句Element is no longer valid (Selenium::WebDriver::Error::StaleElementReferenceError)
的第二次迭代中引发错误!one_link.click
我当时试着这样做
上面提到的片段工作正常!!我不明白为什么第一个片段会抛出该错误!任何人都可以解释第一个片段出现的原因吗?!
更新
为了确保我理解它,我刚刚编写了以下测试页面
并在其上运行以下 ruby 代码
有效!!我相信它与片段 1 完全相同。为什么两个页面的行为不同?!
watir-webdriver - 选择具有动态 src 和 NO id 的框架内的元素
我正在尝试在 iFrame 内的下拉列表中选择一个值。框架不包含 id,但有一个动态的 src。
HTML:
. . .
数字 244029 发生了变化,因此,我无法识别框架内的对象。iframe 是 div 的子元素。
我的代码是
结尾
watir-webdriver - 在嵌套表中选择图像
在单击表格中带有 td 的图像时需要帮助。该表定义为
html如下:
我尝试了以下方法:
我收到错误消息->“Watir::Exception::UnknownObjectException: 无法找到元素,使用 {:id=>"imgLookup1", :tag_name=>"img"}
然后我尝试了
并再次出现相同的错误消息。请帮忙!
watir-webdriver - 如何检查 indexed_property 中的复选框
我有一组选择列表,具有相似属性的复选框。我将它们放在 indexed_property 下。我能够毫无问题地从 select_list 中选择值。但是,当我使用 check_myindexpropitem.mycheckbox 时,出现错误
我得到了 check_myindexpropitem.mycheckbox_element.enabled 返回的 true?
页面对象代码:
脚本:
ruby - 使用populate_page_with data_for时如何等待元素加载到页面对象中?
我正在使用带有 Watir-webdriver 的页面对象 gem。在这里,我正在使用“populate_page_with”功能,当有一些等待元素加载时我无法使用它。
在下面的脚本中,我应该输入详细信息:sum_ctgy
,:sd
然后:foregin
我应该等待:sumc
可见。我在 yml 文件中使用 populate_page_with data_for 方法,数据如下
请告诉我使用填充方法解决此问题的更好方法。
watir-webdriver - 处理 text_field 时出现问题,因为单击它会打开一个弹出窗口
我在 text_field 中输入文本时遇到问题,因为当脚本尝试在该字段中输入任何内容时,它会抛出一个弹出窗口。手动输入时,不会弹出弹窗。文本字段的html如下。
我的代码 =
我的猜测是脚本试图清除文本字段并触发弹出窗口。
我也试过
text_field(:percentage ,:id=>'txtperc')
是否有另一种方法来设置/输入 text_field?
ruby - pageobject - 所有元素的 when_visible
我正在使用cucumber
和的组合pageobject
的组合来测试我的 Web 应用程序。有时,脚本甚至在包含该元素的页面开始加载之前就尝试单击该元素。(我通过捕获失败场景的屏幕截图确认了这一点)
这种不一致并不普遍,它只会在少数几个元素上反复发生。如果我这样做,而不是直接访问这些元素example_element.when_visible.click
如果我这样做,测试套件总是通过,
截至目前,我使用link_name
(由 pageobject 模块在调用时生成)单击链接link(:name, identifier: {index: 0}, &block)
我不想编辑上面提到的代码段,而是表现得好像我调用了link_name_element.when_visible.click
. 原因是,测试套件非常大,更改所有出现的情况会很乏味,而且我也相信该功能已经存在,不知何故我在任何地方都看不到它。谁能帮帮我?!
ruby - 是否可以动态创建页面对象元素
我正在使用 Cheezy 的页面对象 gem。它在大多数情况下都能很好地工作,但在处理动态创建的元素时我似乎无法使用它。我有一种通过将单元格的文本内容传递给方法并在操作时识别元素来单击单元格的方法
我相当确定这不起作用,因为该元素在运行时没有为其生成方法。有人可以告诉我一种以这种方式动态创建带有页面对象的元素的方法吗?
watir-webdriver - 页面对象 - 如何使用项目索引从具有动态值的 select_list 中选择项目
我有一个在运行时填充的 select_list。我需要根据项目索引选择一个值。
例如。
如果我传递的 indexval 是 3,它应该选择第三项。
上面的代码出错了。有替代方法吗?