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



我有一个未命名的iframe,所以我试图使用此处的解决方案来访问它:如何找到带有Capybara的未命名I帧,但我仍然收到以下错误:无法定位帧:0(Selenium::WebDriver::error::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

我发现我实际上使用了错误的索引作为第一个within_frame,有问题的页面有一些我没有考虑的隐藏框架+1只水豚和+1只stackoverflow。

使用此行切换到框架中。

switch_to.frame(index)

最新更新