错误初始化驱动程序方法-未定义的局部变量

问题描述 投票:0回答:1

在我的测试自动化项目中,我将红宝石与水豚,黄瓜和硒一起使用。(我已经安装了devkit并且chrome正在正常启动)

[在站点中寻找要选择的元素时,我正在使用方法driver.findElement (By.xpath (.... etc"),但是在执行黄瓜时,它指示以下错误:

我已经删除并重新安装了selenium-webdriver gem,但它没有解决。

有人可以帮我解决为什么WebDriver在这种情况下似乎无效吗?

代码示例

((使用标签img查找按钮注销,因为该元素没有名称或ID)

After('@logout') do element = driver.findElement(By.xpath("//img[@src='/Portal/img/user.png']")); element.click end

结果黄瓜执行

功能:登录说明功能在ws://127.0.0.1:60121 / devtools / browser / c0bacc6e-697a-4614-b82c-eb324d587df5上监听的DevTools@登出场景:Login_OK#功能/支持/登录。功能:14假设我访问主门户页面HRP#features / step_definitions / login_steps.rb:1何时使用“ abc123”和“ abc123password”登录#功能/step_definitions/login_steps.rb:5然后系统执行登录#功能/step_definitions/login_steps.rb:10并显示消息“欢迎使用门户”。 #功能/step_definitions/login_steps.rb:14#(NameError)的未定义局部变量或方法`driver'./features/support/hooks.rb:4:in在“之后”失败情况:黄瓜功能/支持/登录。功能:14#方案:Login_OK1个场景(1个失败)4个步骤(已通过4个步骤)0分5.457秒

ruby selenium rubygems automated-tests capybara
1个回答
0
投票

[如果您在标准设置中将Capybara与Cucumber一起使用,那么您实际上不应该直接调用硒webdriver实例-driver(在极少数情况下除外)。相反,您应该使用Capybara方法。 After挂钩中可用的内容完全取决于您在include处的位置,但是其中之一可能可用。

After('@logout') do
  element = page.find(:xpath, ".//img[@src='/Portal/img/user.png']"));
  element.click
end
© www.soinside.com 2019 - 2024. All rights reserved.