I bypass the WIN32OLERuntimeError so I'm about to access the frame's
properties and the frame's name etc. However when I try to get the document
it just returns me the main browser document, not the frame document.
I've tried reading through those files Jarmo but like I said I'm new to ruby
and I get a little confused. I'm trying to find out how given a
browserObject.Document.frame I can get the
browserObject.Document.frame.document so I can access those controls.
I'll paste some of my personal source code to see if you guys can maybe give
me a simple breakdown of what I'm missing.
["FRAME", "IFRAME"].each do |frame_tag|
frames = @ie.Document.getElementsByTagName(frame_tag)
frames.each do |frame|
frame_document = get_frame_document(frame)
control = find_control_for_document(filter_expression, frame_document)
if(control != nil)
return control
end
end
end
this is very similar to your loop that I found to get every frame in a DOM
document.
def get_frame_document(frame)
document = nil
begin
document = frame.Document
rescue WIN32OLERuntimeError => e
end
return document
end
this function returns me the frame's document.
However when I try to access the DOM of that document I just get the
original document's DOM not the Frame's...so I can never see the controls
inside of the frame. I'm not sure how you guys wire up the frame object and
the container to get around this
On Wed, Aug 17, 2011 at 12:47 PM, Jarmo <[email protected]> wrote:
> What is the WIN32OLERuntimeError you're getting? Is it access denied? In
> that case read "Why do I get an access denied error when trying to access a
> frame?" in wiki at http://wiki.openqa.org/display/WTR/Frames Maybe that
> helps.
>
> All the relevant source code is visible at
> https://github.com/bret/watir/blob/master/watir/lib/watir/frame.rb#L9-21
> https://github.com/bret/watir/blob/master/watir/lib/watir/container.rb#L117-121
> and
> https://github.com/bret/watir/blob/master/watir/lib/watir/locator.rb#L107-145
>
> Jarmo
>
>
> On Wed, Aug 17, 2011 at 5:59 PM, Michael Mattera
> <[email protected]>wrote:
>
>> Hi,
>>
>> I'm new to Ruby and I'm curious as to how Watir uses the WIN32OLE to
>> connect to the DOM inside a Frame. I have been able to get the frame
>> ReadyState by ignoring the WIN32OLERuntimeError however I can not access
>> controls inside of that frame.
>>
>> All I can find online is about how to code a Watir test to see frames,
>> but I want to know how it works behind the scenes. Being new to Ruby I only
>> understand so much from the Watir source code, I was hoping someone could
>> give me a good explanation on how to recreate this.
>>
>> Mike
>>
>> _______________________________________________
>> Wtr-development mailing list
>> [email protected]
>> http://rubyforge.org/mailman/listinfo/wtr-development
>>
>
>
> _______________________________________________
> Wtr-development mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/wtr-development
>
_______________________________________________
Wtr-development mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/wtr-development