在我的测试自动化项目中,我将红宝石与水豚,黄瓜和硒一起使用。(我已经安装了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秒
[如果您在标准设置中将Capybara与Cucumber一起使用,那么您实际上不应该直接调用硒webdriver实例-driver
(在极少数情况下除外)。相反,您应该使用Capybara方法。 After
挂钩中可用的内容完全取决于您在include
处的位置,但是其中之一可能可用。
After('@logout') do
element = page.find(:xpath, ".//img[@src='/Portal/img/user.png']"));
element.click
end