将Watir的goto方法作为参数传递时出现NoMethodError如何解决
错误原因
Watir::Browser的goto方法返回值是字符串类型的目标页面URL,而非浏览器实例本身。你直接将browser.goto('https://www.google.com')的返回值作为参数传入类构造方法,会导致类内的@browser被赋值为字符串,自然无法调用element方法。- 额外存在3处语法/拼写错误:
- 定义的类名为
Test,实例化时错误写为Teste - 实例化得到的变量名为
test,调用init方法时错误写为teste.init goto方法的URL参数缺少闭合的单引号
- 定义的类名为
修复方案
先执行页面跳转操作,再将浏览器实例传入类构造方法,同时修正所有拼写错误:
# 初始化浏览器实例 browser = Watir::Browser.new(:chrome, headless: true) # 单独执行跳转操作 browser.goto('https://www.google.com') # 传入浏览器实例,修正类名拼写 test = Test.new(browser) # 修正变量名拼写后调用方法 test.init
内容的提问来源于stack exchange,提问作者jujajjjj
相关产品推荐
相关产品推荐

