Ruby Selenium WebDriver:无法在弹出窗口中找到元素

时间:2014-04-09 20:10:47

标签: ruby

我无法在弹出窗口中找到任何元素。但是,我可以点击弹出窗口。在第9行 - 'Unable to locate element: {"method":"id","selector":"user.userName"}'

上获得此错误

情景:

1)打开http://www.harley-davidson.com/store/

2)点击'登录'链路

3)输入用户名和密码登录

请帮我解决此错误。

我的代码:

require 'selenium-webdriver'

browser = Selenium::WebDriver.for :firefox
browser.manage.window.maximize
wait = Selenium::WebDriver::Wait.new(:timeout => 15)
browser.get "http://www.harley-davidson.com/store/"    
browser.find_element(id: "logonLinkDiv").click #to click on the sign-in link
wait
browser.find_element(id: "hdwcOverlay_h").click  #to click on the sign-in pop-up window

#I am unable to identify the elements 'User Name' and 'Password' in the pop-up window**

browser.find_element(id: "user.userName").send_keys("test@test.com")
browser.find_element(id: "user.password").send_keys("test123")  
browser.quit

1 个答案:

答案 0 :(得分:0)

正如@orde所提到的,你需要切换到正确的框架,因为框架被视为具有自己DOM的整个单独文档。查看您链接到的页面,这应该有效:

driver.switch_to.frame "hdwcOverlayIframe" # do this first
# now these should work
browser.find_element(id: "user.userName").send_keys("test@test.com")
browser.find_element(id: "user.password").send_keys("test123")