在我的测试自动化项目中,我将红宝石与水豚、cucumber和硒一起使用。(我已经安装了开发工具包,并且铬正在正常启动)
在站点中查找元素以选择它时,我正在使用方法驱动程序.find元素(By.xpath (....等“),
但在执行cucumber时,它表示以下错误:
我已经删除并重新安装了<code>selenium webdriver
有人能帮助我解决为什么< code>WebDriver在这个上下文中似乎无效吗?
代码示例
(使用标记img查找按钮注销,因为元素没有名称或id)
< code >在(' @logout ')之后do element = driver . find element(by . XPath("//img[@ src = '/Portal/img/user . png ']");element.click end
cucumber死刑的结果
功能:登录
描述功能
监听ws://127.0.0.1:60121/DevTools/browser/c0bacc6e-697a-4614-b82c-eb324d587df5@logout
场景:登录_OK#功能/支持/登录。功能:14<br>假设我访问主门户页面HRP#features/step_definitions/login_steps。rb:1<br>何时使用“abc123”和“abc123password”登录?#features/step_definitions/login_steps。rb:5<br>然后系统进行登录#features/step_definitions/login_steps。rb:10<br>并显示消息“欢迎访问门户”。#features/step_definitions/login_steps。rb:14<br>未定义#(NameError)的局部变量或方法“driver”。/features/support/hooks。rb:4:在失败的场景中:
cucumber功能/支持/登录。功能:14#场景:登录_OK
1个场景(1个失败)4个步骤(4个通过)0m5.457s
如果你在标准设置中使用水豚和cucumber,那么你不应该直接调用硒网络驱动程序实例 - 驱动程序
(除了在一些非常罕见的情况下)。相反,你应该使用水豚的方法。您的 After
hook 中可用的内容取决于您的确切位置,
但其中一个可能可用
After('@logout') do
element = page.find(:xpath, ".//img[@src='/Portal/img/user.png']"));
element.click
end
或
After('@logout') do
element = Capybara.current_session.findElement(:xpath, ".//img[@src='/Portal/img/user.png']");
element.click
end
注意:定位注销按钮的方法可能比在包含的图像源上使用XPath更好,但如果看不到按钮的HTML,则无法确定(例如,Capybaras按钮查找器将匹配嵌套在
包实用程序 基类 登录类 App_Constant类 包添加用户 null 现在我的问题是,我已经在基类中创建了公共静态方法openurl(),并且webdriver已经在那里初始化。但是当我在同一个包的其他类和其他包中调用同一个方法时,为什么它会给我WebDriver的nullpointerexception? 是否需要编写代码来初始化webdriver并在每个类中调用browser。如何才能全
初始化 Lotus 驱动程序 当安装 Lotus 数据库的驱动程序时,设置程序会在引擎的 Windows 注册表和 ISAM 格式子键写入一些缺省值。不要直接修改这些设置;请使用应用程序的设置程序来添加、删除、或更改这些设置。下面部分描述 Lotus 数据库驱动程序的初始化和 ISAM Format 设置。 Lotus 初始化设置 Jet\3.5\Engines\Lotus 文件夹包含用来访问外部
我对python相当陌生,我想知道局部变量是如何工作的。让我们从一个简单方法的示例开始: 让我们假设local_dict像一种常量变量一样使用。这里有一个问题:它是在每次调用do_sth()时创建的,还是创建一次并保存在do_sth()内部的某个地方?
考虑到下面的代码,为什么即使优惠券、偏移量和基已在if语句中初始化,编译器仍会在第5行抱怨?由于“percent”变量的默认值为0.0,因此if语句将运行并设置这些值。
初始化 Microsoft Excel 驱动程序 当安装 Microsoft Excel 数据库的驱动程序时,设置程序会在引擎的 Windows 注册表和 ISAM 格式子键写入一些缺省值。不要直接修改这些设置;请使用应用程序的设置程序来添加、删除、或更改这些设置。下列部分描述 Microsoft Excel 数据库驱动程序的初始化和 ISAM Formats 设置。 Microsoft Exce
问题内容: UI类在View中,导入已完成,但是在最后一个表达式中我得到了错误。 我是Java的入门者,但我不明白为什么我不允许这样使用它。 问题答案: 如果要在Java方法中声明变量/对象,则需要对其进行初始化。 简单来说 在您的情况下,它是一个正在访问方法的对象,因此,如果不初始化它,就像 它会给你一个NULL指针异常。 希望能帮助到你。