当前位置: 首页 > 知识库问答 >
问题:

RSpec/水豚没有Rails设置页面对象/支持文件?

江衡
2023-03-14

因此,我将编写一个框架,使用Rspec/Capybara和Selenium在应用程序上进行一些自动化测试。我使用的是纯RSpec(没有rails),我在正确设置所有内容时遇到了一些困难。

我遇到的问题是当我试图将页面对象文件包含到我的规格中时。现在我的目录看起来像:

spec(实际的.spec文件在这里,spec\u助手也在这里)spec/support(页面对象文件在这里)

在我的页面对象文件中,我的第一个问题是它无法找到Capybara DSL,除非我这样做:在每个页面对象文件的顶部包含Capybara::DSL(根据它给我的警告消息,这显然不是一个好主意)

另一个问题是,在我的测试中包括我的页面对象文件,我需要对特定文件进行require\u relative(这有点麻烦),否则它就找不到类。

spec\u helper中有什么东西可以解决这个问题吗?我不是ruby方面的专家,所以我想我遗漏了什么。水豚DSL的问题我也不清楚,例如要求要求'Capybara/rspec'似乎也没有帮助。


共有1个答案

石正卿
2023-03-14

你有几个选择Capybara::DSL-

>

  • 将Capybara::DSL包含到您正在为PageObject使用的任何基类中,以便Capybara方法在该类中可用(而不是在全局对象上)-即。/code>在类定义的内部-而不是在文件的顶部。

    在页面对象实例中保留一个Capybara::Session实例,并调用该会话实例上的所有Capybara方法-@my\u Session。查找(…) ,等等。

    始终使用Capybara。调用Capybara方法时的当前会话-Capybara。本次会议。查找(…) ,等等

    至于require问题,您可以使用require\u relative从当前文件中指定需要的文件,或者使用require从项目根目录(当前工作目录)中指定位置。如果您有一个要加载的文件目录,可以向spec\u助手添加如下内容。rb命令它加载所有文件

    Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f }
    

  •  类似资料:
    • 我正在编写一个使用水豚和网页对象模型的网络应用程序的框架。这是我第一次编写自己的框架并使用PoM进行自动化。 我的基本“页面对象”本质上是初始化驱动程序,并在每个其他页面对象子类中使用(用于各个页面) 在PoM的大多数示例中,我看到返回该页面对象实例的方法,但通常它们使用一些传递的实例变量。在我的测试脚本中,我简单地通过调用Base page对象类的一个实例,然后然后创建另一个的新实例通过页面对象

    • 我正在为我的Rails代码库编写一个测试套件,并试图使用Capybara单击一个搜索图标,检查搜索字段是否出现。然而,由于Capybara找不到CSS元素“search\u icon”,测试一直失败。我试过使用和

    • 我是cucumber和水豚的新手,我对以下错误感到困惑: 在我的功能中,我有: 我的步骤如下所示: 我尝试了“click(button\u text)和click\u link”方法。我想这可能是我没有看到的明显的东西。我试图找到按钮元素的css定位器,然后单击该元素。我认为regex不需要更改,因为我正在更改“button\u text”局部变量的内容。还是我?

    • 我正在根据一个主要开发人员的请求编写一个自动化测试。 正在开发的网页的一部分是允许用户提取数据的csv。在过去,CSV中的报头排序存在许多缺陷。 我需要打开csv,将头转换成一个数组,并与我创建的预期头的数组进行比较。 我已经读过Ruby2.0中的CSV文档,但我对Ruby还是个新手,我正在努力弄明白这一切的意义。 因此,期望csv中的第一个头eql我自己的数组中的第一个头。 我如何将csv文件头

    • 我有以下rails配置: 有没有人对是什么导致了这个错误有什么建议?

    • 我正在进行UI自动化测试,使用POM与Python和Selenium。我想知道如何处理重复的测试用例。 例如,您有两个网页:登录页和主页。我想测试三个测试用例。 未登录的主页功能:登录前测试主页。py (1和3有很多共同点。3有额外的功能。1是3的子集) 每个测试用例有三个文件,我已经实现了1和2。但是对于第三个模块,我只是从1和2模块中导入了相关函数。 问题是验证登录是否重复。在这种情况下,您是