【发布时间】:2018-04-01 05:01:03
【问题描述】:
我是自动化新手,如果标题不合适,请见谅。
我按照指南 http://www.swtestacademy.com/ruby-cucumber-and-capybara-on-windows/ 安装了 Ruby、Devkit、gem json、cucumber、capybara、selenium-webdriver、rspec
但是我无法使用完整的 xpath 找到元素(使用 xpath 插件和开发人员工具检查和验证),我的操作是:
page.find(:xpath, "my_xpath").send_keys(yyy)
我得到了: 找不到可见的 xpath
我也试过了:
page.findElement(By.xpath("my_xpath")).send_keys("ori_pw")
我得到了: 未初始化的常量 By (NameError)
我想尝试使用 watir,我已经安装了 gem watir,watir-webdriver。 并在我的 env.rb 中添加了 require 'watir' 然后我尝试:
page.input(:name => "xxx").set(yyy)
但我得到:# (NoMethodError) 的未定义方法“输入”
请给我一些建议好吗? 谢谢。
===============================================编辑# 1
我的 env.rb 现在看起来像这样:
require 'rubygems'
require 'capybara'
require 'capybara/dsl'
require 'rspec'
require "selenium-webdriver"
require 'watir'
require 'cucumber'
Selenium::WebDriver::Firefox::Binary.path='C:\Program Files\Mozilla Firefox\firefox.exe'
Capybara.run_server = false
#Set default driver as Selenium
Capybara.default_driver = :selenium
#Set default selector as css
Capybara.default_selector = :cs
#Syncronization related settings
module Helpers
def without_resynchronize
page.driver.options[:resynchronize] = false
yield
page.driver.options[:resynchronize] = true
end
end
World(Capybara::DSL, Helpers)
如何禁用 capybara 并正确设置 watir? 抱歉,我没有技术背景...
Thomas,是的,元素是可见的, HTML screenshot 实际上,我将为这 3 个密码字段设置值。 我正在尝试的 xpath 是:
/html/body[@class='modal-open']/app-root/div[@id='wrapper']/app-navigation/user-change-password/div[@id='myModal']/div[@class='modal-dialog modal-lg']/div[@class='modal-content']/div[@class='modal-body']/form[@class='ng-pristine ng-invalid ng-touched']/fieldset[@class='form-horizontal']/div[@class='form-group'][1]/div[@class='col-sm-7']/input[1]
(最后我使用避免使用类,因为有时我看到类名不同) 谢谢。 ==============================================编辑#2
问题现在转移到 chromedriver。 双击可以显示
Starting ChromeDriver 2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f) on port 9515
Only local connections are allowed.
但是在cmd输入chromedriver会显示Chromedriver.exe已经停止工作。
【问题讨论】:
-
您要查找的元素是否在页面上实际可见? (显示您请求的实际 XPath 和相关的 HTML 会有所帮助)并且您不能混合 capybara 和 watir,它们各自维护自己的会话。
标签: cucumber capybara watir watir-webdriver