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

Selenium automation:Nomethoderror未定义方法“my method”for nil:nilclass

谭向晨
2023-03-14

背景:我是一个自动化新手,我正在尝试使用红宝石和硒进行一些测试。我对自己在做什么有一些了解,但我仍然很新手。

问题:当尝试调用应该从页面部分继承该方法的对象上的方法时,我得到了一个“nil: nilclass的nomethoderror未定义方法”。

故障排除和研究:我搜索了nil:nilclass问题的类似问题,但找不到任何真正符合我尝试做的事情(或者在我的noob眼里不是这样)。我怀疑我没有正确地实例化我试图从中调用该方法的页面部分,但我不确定如何表达这一点以使事情向前发展。

其他东西:我知道还有其他库可以帮助我更好地做元素和部分(比如siteprism等),但是我正在尝试用硒和RSpec作为我训练中的练习。

这是页面部分的代码

require_relative 'abstract_page'

class PageTitleSection < AbstractPage

   def findPageTitle
        @driver.find_element(:class, 'subheader')
   end

 end

这是页面的代码

require_relative 'abstract_page'
require_relative 'page_title_section'


class TagsPage < AbstractPage
  attr_reader :page_title_section
  @page_title_section

  def self.navigateToTags(driver)
    driver.get('https://stackoverflow.com/tags')
    return TagsPage.new(driver)
    @page_title_section = PageTitleSection.new(driver)
  end
end

测试如下:需要“rspec”需要“selenium webdriver”

require_relative 'spec_helper.rb'
require_relative '../pages/tags_page'
require_relative '../pages/page_title_section'

describe 'Basic navigation and confirmation that page title is visible' do

   it 'should navigate to the tags page and find the title' do
     tags_page = TagsPage.navigateToTags(@driver)
     expect(tags_page.page_title_section.findPageTitle).to eq('Tags')
   end
end

我在findPageTitle方法测试的expect行上得到了错误。

我觉得自己很笨,但我希望有人能给我指出正确的方向。

共有1个答案

龙俭
2023-03-14

tags_page.page_title_section为nil。请注意,在Navigate ToTags方法中,它确实从未被分配。返回在它上面。

def self.navigateToTags(driver)
  driver.get('https://stackoverflow.com/tags')
  return TagsPage.new(driver)
  @page_title_section = PageTitleSection.new(driver) # <- unreachable code
end
 类似资料:
  • 我有一个扩展方法: 应用程序安装时没有任何错误;但是当在运行时调用该方法时,它会给我以下错误: java.lang.NoSuch方法错误:没有静态方法onClickButtonBack(Lcom/app/common_client/ui/片段 /stores/StoresClientFragment;)V类Lcom/app/common_client/公共资源/公共资源AppTypeGroupKt

  • Good day我不确定发生了什么我怀疑eclipse,但在UserDetailsServiceImpl中它是定义的,因为我实现了spring的UserDetails服务,下面是我的代码 这是让人头痛的一行“UserDetails UserDetails=userDetailsService.loadUserByUsername(username)”提前感谢您

  • 我知道OutlineButton是旧版本,而新版本是OutlinedButton。 我的项目: 环境: sdk: ” 我的安装 : [√] 颤振通道稳定,3.0.5,

  • 问题内容: 我正在尝试对页面登录进行编码,但在此错误中我处于停止状态 PLIZ在这里告诉我错了事 问题答案: 用于准备的语句。例如 您正在尝试直接在主数据库对象上执行查询。对于PDO,这意味着 您确实应该研究准备好的语句。您很容易受到SQL注入攻击的影响,并且由于您从一开始就使用PDO,因此不编写安全查询基本上是不可原谅的。

  • 问题内容: 启动有问题。 我初始化了我的Firebase应用程序。但是auth()无法正常工作 返回未定义。 它还给出了功能错误 错误: TypeError:auth.createUserWithEmailAndPassword不是函数 问题是什么? 问题答案: Firebase3.0.5中没有用于node.js的方法createUserWithEmailAndPassword,请参阅文档

  • 我知道有很多类似的问题,但这些解决方案都不管用。我有一个关系数据库。具体来说,我有两个相互关联的表格:程序和讲师。 表之间的关系如下: 一个程序“has_many:讲师”和一个讲师“belongs_to:程序” 以下是表格模型的代码: 我还有一个非常简单的观点: 控制器为: 问题是RoR没有识别表之间的关系,导致行"@an.instructors.empty?失败,并出现以下错误:nil的未定义方

  • Rails关联的基本问题如下表: 商店:名称,网络 产品:标题、价格、店铺id 关系定义为has_many并属于: 型号: shop.rb 产品rb型 控制器: shops\u控制器。rb型 products_controller.rb 在商店视图中,我设法参考并显示每个商店的所有产品,没有问题: 但另一方面,在产品视图中,我无法从Shop表中显示网络信息: 这将返回以下错误:

  • 我正在尝试编写一个LWRP,其中基于条件它将从助手库调用方法。我在让提供者读取外部方法时遇到语法问题。 供应商很直接 以及helper库 但每当我尝试运行它时,不管设置了什么资源属性,我都会得到 我显然在写助手库的留档中遗漏了一些东西,但我不确定是什么。试着移动一些东西,但开始没有想法。