在Selenium 2.9中选择Image

我正在尝试使用RSpec来尝试自动化测试维护后的周末,我正在这里实习。 我正在使用Selenium WebDriver 2.9.0获取一个特定的代码,然后添加个性化代码。 我目前所坚持的是尝试让WebDriver点击一个图像,然后导航到正确的HTML,但我目前无法这样做。 这是我到目前为止所拥有的……

it "can go to Ultratime" do @ie_driver.find_element(:link, "My Resources").click wait.until { @ie_driver.execute_script("return document.readyState;") == "complete" } sleep 3 wait.until { @ie_driver.find_element(:link_text => "Login").displayed?} #test above line puts "found Ultratime" #this just finds the "Logout" button and clicks it @ie_driver.find_element(:name, "ee").click end 

这是与我试图浏览的网站的“按钮”相关的HTML代码:

  

Ultratime Login

任何帮助将不胜感激!

单击图像就像点击任何其他元素一样。 如果你有问题定位图像,给它id并使用css选择器ie

 driver.find_element_by_css_selector("#yourimageid").click() 

编辑:要将焦点切换到帧,请使用:

 driver.switch_to.frame driver.find_element(..) 

如果你不能设置ID,任何定位器都应该工作

 drive.switch_to.frame driver.find_element( :xpath, "//iframe" ) 

单击图像就像点击任何其他元素一样。 如果你有>问题定位图像,给它id并使用css选择器ie

 driver.find_element_by_css_selector("#yourimageid").click() 

编辑:要将焦点切换到帧,请使用:

 driver.switch_to.frame driver.find_element(..) 

如果你不能设置ID,任何定位器都应该工作

 drive.switch_to.frame driver.find_element( :xpath, "//iframe" ) 

谢谢Borsunho,在发现我需要首先找到iframe后,它让事情变得更加简单。 这是我的最终结果:

  it "can go to Ultratime", focus: true do @ie_driver.find_element(:link, "My Resources").click @ie_driver.switch_to.frame(@ie_driver.find_element(:css, 'iframe[src="https://controller.nd.edu/ultratime/insidend/"]')) @ie_driver.find_element(:class,"single").click end