我无法在弹出窗口中找到任何元素。但是,我可以点击弹出窗口。在第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
答案 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")