无法使用0索引在capybara中找到未命名的iframe

时间:2014-01-02 19:59:51

标签: ruby iframe selenium selenium-webdriver capybara

我有一个未命名的iframe,因此我尝试使用此处的解决方案来访问它:How do I find an unnamed I-Frame with Capybara但我仍然收到以下错误:无法找到frame:0(Selenium :: WebDriver: :错误:: NoSuchFrameError)

感兴趣的帧是两帧深,所以我设置了下面的代码,但它失败了上述错误;我还看了一下驱动程序的来源,但是我感兴趣的部分引用了索引的注释:https://github.com/jnicklas/capybara/blob/master/lib/capybara/selenium/driver.rb这是否意味着它已被弃用?

require "capybara/dsl"

include Capybara::DSL

Capybara.run_server = false
Capybara.default_driver = :selenium
Capybara.default_selector = :xpath
Capybara.ignore_hidden_elements = false

visit "http://example.com"

within_frame 0 do
  within_frame 0 do
    imagelist = page.all("//div[contains(@class, 'panel')]//img")
    chosenimages = imagelist.map{ |link| link['src'] }
    imagechoices = chosenimages.map do |imagechoice|
    finalfilename = File.basename(imagechoice)
    puts finalfilename
    puts imagechoice
    end
  end
end

2 个答案:

答案 0 :(得分:0)

我认为这一个我实际上是在第一个within_frame中使用了错误的索引,所讨论的页面有一些我没有考虑的隐藏框架。 +1 capybara和+1 stackoverflow。

答案 1 :(得分:0)

使用此行切换到框架。

switch_to.frame(index)