问题标签 [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.
ruby - 需要从 RUBY CAPYBARA 中的 SitePrism WebElement 获取 css 选择器吗?
我需要从我的自动化脚本中的 SitePrism WebElement 检索 css 选择器。下面是 SitePrism 中的一个 WebElement。
如果我想从此 webelement 中检索 XPath,我可以在下面执行此操作,这将返回该元素的 Xpath:
但是如果我想在我的脚本中检索 css 选择器(“#unique_id .some_class_name”)。我怎样才能做到这一点?寻找这样的东西。
需要你的帮助....我正在使用 SitePrism Capybara Ruby 框架。
ruby - 无法在 ruby cucumber 中使用具有通用方法的 rspec 打印通用味精
使用黄瓜站点棱镜。我正在导航到一个页面并想要检查该页面上存在的所有元素。我使用了此代码,但无法打印此通用消息。
“@sign_in”是我定义了所有登录元素的类的对象“表”包含所有元素名称
capybara - 在使用 siteprism 中的部分时无法找到元素的 css
代码没有显示任何其他错误基本结构,卡在使用下面部分的基本功能
错误
无法找到 css“下拉 css”(Capybara::ElementNotFound)
html - Capybara/Poltergeist 无法通过 css 选择器找到元素
当我使用 selenium_webdriver 并显示 firefox 时,工作正常;现在我迁移到无头浏览器,并在我的自动化测试中配置 Poltergeist/PhantomJS,但无法正常工作。Capybara / Poltergeist 不再找到元素。
我用siteprism映射了我的元素,这里是我的例子:element: link, "a[href='\my_link']"
当我的测试运行时,抛出这个错误:
Capybara::ElementNotFound: Unable to find css "a[href='/my_link']"
但是当我使用方法find_all
capybara/poltergeist 找到我的元素时:
这是我对 Poltergeist 驱动程序的配置:
步骤.rb
应用程序.rb
结尾
主页.rb
实用程序.rb
我:inspector => true
在我的 Poltergeist 注册驱动程序中使用,打开 chrome 来查看我的页面;
我使用 chrome 控制台document.querySelectorAll("a[href='/link_3']")
来选择这个元素。
并返回正确的元素;
[<a class="foobar" title="Title" href="/link_3">text</a>]
如果有人帮助我,我真的很感激;
谢了。
ruby - 有没有办法生成当前页面上的 Siteprism 对象的数组或哈希
对于 POM,我还是新手(ish),但我发现语法和一般结构非常强大,所以现在我正在寻找高级技术。
我有一个动态页面,并且对于每个部分,我都在运行以下代码/伪代码
我想做的是这样的。
有什么想法吗?
ruby-on-rails - 如何在 SitePrism 部分的集合中搜索与特定条件匹配的部分
我已将元素定义sections
为包含单个元素的列表以对数据表进行建模。Sections 集合的每个 Section 对应于表的一行,每个element
Sections 定义对应于该行的一列。
我想在 Sections 集合中搜索对应于具有给定 id 的行的 Section,然后单击该行的元素。
不幸的是,我找不到搜索返回的 Section 对象数组的方法PageObjectClass.<sections_name>
。
相反,如果我将行集定义为elements
thenPageObjectClass.<elements_name>
返回一组 Capybara 元素,我可以在这些元素上执行find
Capybara 但我不能使用 SitePrismsection.element
语法。
使用该elements.find
语法似乎有一种代码味道,因为到目前为止,用于访问元素的 CSS 已在 PageObject 类定义中抽象出来——现在我必须在测试代码中引用特定元素的 CSS 才能单击它。
我在这里想念什么?为什么SitePrism在线讨论中使用数据表的例子这么少,为什么没有更多的人遇到这个问题?
我遇到的唯一参考是https://github.com/natritmeyer/site_prism/issues/91
这个建议有什么结果吗?
ruby - Chromedriver 需要很长时间才能加载资源
我的自动化测试套件偶尔出现故障,因为页面上的某些资产需要很长时间才能加载。每次都是不同的,所以我的问题是:这似乎是应用程序配置或 chromedriver 的问题?
ruby - 无法创建新页面:SitePrism 页面出现未初始化的常量错误
有几个类似的问题,但我的问题似乎不同,因为我基本上是在复制当前正在工作的文件。
我加入了一个团队,其中最后一个人留下了一个黄瓜/红宝石框架,设置如下:
- lib/pages/page1.rb
- 其中 page1.rb = 类 PageOne < SitePrism::Page
- 他们只是创建一个新对象:@new_page_one = PageOne.new
我已经搜索了整个代码,看看他是否在任何地方都有“要求”或“包含”“page1.rb”、“page1”或“PageOne”,但他没有,但即使这样,当一个尝试创建一个新对象。
所以,现在我想创建一个新类,我只是将工作文件复制并粘贴到同一位置,并将所有文件重命名如下:
- lib/pages/page2.rb
- 其中 page2.rb = 类 PageTwo < SitePrism::Page
我遇到的问题是,当我尝试创建一个新对象时出现此错误:-@new_page_two = PageTwo.new
知道为什么第一个有效而在这种情况下复制/粘贴无效吗?你有什么可以建议我试试我的结局吗?
capybara - 是否可以使用 SitePrism 单击第 N 个元素?
我刚从 SitePrism 开始,我有一个网站,其中元素被动态添加到页面中并且没有任何类型的 id、名称等......我能想到的最简单的方法是通过它们的“文本”找到它们',例如。继续按钮
我在尝试:
并且 SitePrism 失败并显示以下内容:
有没有办法让我用 SitePrism 指定我要单击的元素?我已经找到了一些使用 Capybara 本身的方法,但我没有设法看到 SitePrism 的等价物。
capybara - 无法找到 ReactModal 作为部分 - ArgumentError:参数数量错误
SitePrism 一直在为我的自动化项目工作,直到我需要处理一个特定的 ReactModal 对象,该对象可以与直接 capybara find 命令一起使用,但不能在 SitePrism 中使用。我真的很感激这个问题的任何帮助。
在 pry 调试器中调用 find 会起作用
pry(#RSpec::Core::ExampleGroup::Nested_1)> 找到“div:nth-child(18) > div > div > div”
=> # "div:nth-child(18) > div > div > div"
pry(#RSpec::Core::ExampleGroup::Nested_1)> find find "div:nth-child(18) > div > div > div"
=> # "div:nth-child(18) > div > div > div"
但是调用 SitePrism 对象 @videos_page.clipping 会导致错误
pry(#RSpec::Core::ExampleGroup::Nested_1)>@videos_page.clipper ArgumentError:来自 /Users/kpham/.rvm/gems/ruby-2.3.0@social 的参数数量错误(给定 2,预期为 0) /gems/site_prism-2.9/lib/site_prism/element_container.rb:28:in 初始化'
pry(#RSpec::Core::ExampleGroup::Nested_1)>@videos_page.clipping ArgumentError:来自 /Users/kpham/.rvm/gems/ruby-2.3.0@social 的参数数量错误(给定 2,预期为 0) /gems/site_prism-2.9/lib/site_prism/element_container.rb:28:ininitialize'