Thx a bunch guys !!!
On Aug 17, 2011 8:28 PM, "Ethan" <[email protected]> wrote:
> attach basically finds all the existing browsers by looping over
>
> WIN32OLE.new('Shell.Application').Windows
>
> and selecting those whose path looks like /Internet Explorer/ and then
> picking the one which matches whatever criteria were given to the attach
> function. the code in watir is rather labyrinthine, but that's the gist of
> it.
>
> On Wed, Aug 17, 2011 at 16:24, Michael Mattera <[email protected]
>wrote:
>
>> I've got everything connecting to the frames now that was awesome!!! One
>> more thing, can you point me to the lines that Attach to browsers? If I
can
>> get that final step I think I'll be good to go! :D
>>
>> Mike
>>
>>
>> On Wed, Aug 17, 2011 at 3:09 PM, Ethan <[email protected]> wrote:
>>
>>> if you have a WIN32OLE representing a <frame> or <iframe> you can get
its
>>> window and document via:
>>>
>>> frame_window = frame_ole_object.contentWindow
>>> frame_document = frame_window.document
>>>
>>>
>>> On Wed, Aug 17, 2011 at 14:14, Michael Mattera <[email protected]
>wrote:
>>>
>>>> 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
>>>>
>>>
>>>
>>> _______________________________________________
>>> 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

Reply via email to