如何在ruby selenium webdriver中管理框架

时间:2014-03-05 12:51:02

标签: ruby selenium-webdriver

我正在使用RUBY selenium webdriver(不是java,不是c#等)。请解决方案必须是红宝石。所以,我有ID“_wicket_window_3”的框架。要找到这个元素,我申请:

driver.switch_to.frame driver.find_element(:id, "_wicket_window_3") 

我的frama有“Adjuntar”,“Exportar”和“Terminar”按钮。

现在,我该如何管理框架?我想点击“Adjuntar”,“Terminar”或“Exportar”按钮。

如果我在那里尝试:

frame = driver.switch_to.frame driver.find_element(:id, "_wicket_window_3") 
frame.click_button("Adjuntar")

响应是:未定义的方法。

拜托,帮帮我!!!

此致,Agustín。

2 个答案:

答案 0 :(得分:0)

您无法管理在规划时切换到的iframe。 当你这样做

driver.switch_to.frame driver.find_element(:id, "_wicket_window_3") 

您的上下文开始位于此iframe中,您现在对驱动程序执行的所有操作都将位于此iframe内

所以,在切换之后:

driver.click_button("Adjuntar")

应该点击按钮。

答案 1 :(得分:0)

我不认为click_button是正确的命令,这就是为什么您得到的错误是undefined method

您必须切换到框架,然后像之前一样查找按钮的元素,然后单击框架

类似

driver.switch_to.frame driver.find_element(:id, "_wicket_window_3") 
driver.find_element(:id, "id_of_the_button_you_want_to_click").click

Note在此处使用:id,但您可以使用所需的任何定位符,:css:xpath:class