我有一个未命名的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
答案 0 :(得分:0)
我认为这一个我实际上是在第一个within_frame中使用了错误的索引,所讨论的页面有一些我没有考虑的隐藏框架。 +1 capybara和+1 stackoverflow。
答案 1 :(得分:0)
使用此行切换到框架。
switch_to.frame(index)