问题标签 [site-prism]
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.
capybara - 无法从给定的标签文本定义 siteprism 元素
我正在使用 cucumber/ruby/capybara/siteprism 框架,我在识别元素时遇到问题,因为我们要么缺少 ID、名称等,要么他们实时创建它们。
我主要是尝试在 siteprism 页面对象模型中定义其中的一些元素。例如,我试图在下面的“名字”的“输入”字段中输入一些数据:
有没有办法传递标签文本(例如:'First Name' - 忽略周围的空格,比如 - contains='First Name'),然后找到里面的输入元素来设置它?
我在想一些事情:
ruby - 在页面对象模型(例如 SitePrism)中定义单选按钮而不是直接使用 Capybara 有什么好处吗?
我目前正在使用 cucumber/ruby/capybara/siteprism 框架并实现测试页面。我已经达到了这样一个点,即在几个页面中每页有很多单选按钮(超过 20 个),我在想是否真的有任何好处尝试将所有这些都映射为我的页面对象模型中的静态元素?
即想一想,直接使用step定义中单选按钮的文本,直接调用capybara的'choose'方法,类似下面这样,这样我就不需要做任何其他事情了,似乎方便多了对于那些 20 多个单选按钮,它应该只通过更改我们在功能中传递的参数来工作:
而对于像 siteprism 这样的页面对象模型,我想实现需要以类似于以下的格式独立定义和维护所有这些元素:
为了使用它,应该创建页面,调用元素,这对我来说似乎不那么直接?
我想可以为所有按钮创建一个带有数组的“元素”或“部分”,但是,我们必须添加额外的逻辑来解析它们并在代码中的某处点击相关的,而它会使用 capybara 的“选择”方法可以整齐地完成所有操作,无需任何额外的代码或维护。
我是否可以假设在这个例子中使用 Capybara 是一个更好的选择?或者如果在页面对象模型中定义“所有”网络元素会更好,这样做有什么好处?页面对象代码是否可以以不同的方式完成以利用任何可能的好处?
ruby - 如何从页面对象(siteprism)ruby 类访问黄瓜 env.rb 中的黄瓜常量?
我在黄瓜的 env.rb 文件中定义了一个常量:
然后我想从那个 'config.yaml' 文件中访问值,比如CONFIG['url']
.
我遇到的问题是我有一个页面对象 siteprism 类,但我不知道如何访问它?
它失败了:
我想访问在我的 env.rb 文件中定义的 CONFIG 常量,而不是来自 MyPage 的常量。你们知道我怎么能做到这一点吗?
ruby - 从 Site Prism 页面对象获取 css 选择器
有没有办法为您在 SitePrism 中定义的页面对象获取 css 选择器?例如,如果我有
我如何在测试中使用选择器来获取.my-element-class
?
ruby - 使用 selenium、site_prism 和 capybara 进行测试时,Javascript 无法正常工作
我正在用 capybara 和 selenium 编写规范。我能够成功运行所有测试,但我遇到了一个问题。Js 在所有规范中都无法正常工作。谁能帮我找到运行javascript的方式?
ruby - 使用 Cucumber 和 SitePrism 的未初始化常量 (NameError)
我正在使用 Cucumber 和 SitePrism 创建测试自动化。运行cucumber
命令以启动场景时出现错误并出现此错误:
我有 3 个 Ruby 类位于单独的文件中
特征/page_object/home_page.rb
功能/page_object/navbar/main.rb
功能/page_object/navbar/login_section.rb
需要帮助,以便自动化可以正常运行(没有错误)。有什么解决办法吗?
cucumber - 是否可以在 SitePrism 字段中找到不区分大小写值的元素?
我需要使用 SitePrism 找到的对象的两个标签中包含以下元素文本:
- '正确日期'
- '正确的日期'
是否可以通过在 SitePrism 中使用不区分大小写的表达式来找到这样的元素?我正在尝试以下操作,但出现错误:
元素:正确日期,:字段,“/正确日期/i”
错误:无法找到字段“/正确日期/i”(Capybara::ElementNotFound)
上面的表达式在完全匹配时甚至会失败,无论出于何种原因:S 知道我可以尝试什么吗?
cucumber - 定义页面对象时是否可以使用siteprism变量定义新变量?
我正在开发一个黄瓜、红宝石、水豚、siteprism 项目,我们在 siteprism 页面对象中定义了大多数英国变量。
有没有办法让我使用我创建的 siteprism 变量作为新变量定义的一部分?
例如,如果我有一个如下所示的 siteprim 页面:
我可以在同一个 pageobject 声明中以某种方式定义新变量吗,例如:
谢谢你。
ruby - NoMethodError:尝试在 SitePrism 类中使用时未定义的方法“期望”
我有一个 cucumber,ruby,siteprism 项目,我们使用 'rspec' gem 来检查期望值。这包含在我们的 env.rb 中,并在步骤定义中成功使用。
我现在试图在 SitePrism 类中做出一些断言,但我得到了一个错误。你知道我如何使用那些 expect() 方法吗?我在定义 SitePrism 类的 .rb 文件中尝试了require 'rspec'
加号,但仍然遇到相同的错误:include Rspec
谢谢!
ruby - Capybara 和 Siteprism:从加载中忽略元素
我们有一些用 Capybara (Ruby) + SitePrism + ChromeDriver 编写的测试。
在其中一些测试中,涉及的页面有一些加载速度非常慢的 iframe,这导致测试因 Net::ReadTimeout 异常而失败。
我知道我可以增加超时等待更长时间,但这会大大增加测试的总执行时间。
此外,我们并不真正关心 iframe 本身,只关心该页面中的其余元素。
有没有办法告诉 Capybara 不要等待 iframe 加载?
如果这不可能,至少可以等待一些预定义的时间,如果该时间到期,模拟停止页面加载(就像在实际浏览器中按下退出按钮)?