My guess at what's going on is that View Source gives you the source
XML, but IE#html gives you the XML transformed into HTML for pretty
viewing in the browser. Not sure how you get at the untransformed XML
with Watir. Perhaps someone knows of a way to get IE not to transform
the XML (or to replace the built-in XSL with your own, which could be
an identify transformation). Sorry I can't be more help.

Richard

On Sun, Dec 21, 2008 at 7:09 PM, winstan <[email protected]> wrote:
>
> Hello Again,
>
> After playing around with rexml with some of the URL's provided in
> this thread and other sites I have found I have established that you
> are in fact correct and that rexml would be the way to go. However, I
> am still making requests and receiving responses to and from the WS
> via the UI, and as such I am in need of a little more help/advice with
> this.
>
> After making the request with specific attributes a response is served
> up from the WS and is opened in another IE window. I can attach to the
> new window with out a problem but from that point on I am unsure as to
> how to proceed with the use of rexml. Bellow is an example of some
> thing I tried but I assume because I am making the.
>
> it 'Attaching to the new window and confirming that there was a VALID
> response from the web server' do
>      @b2 = Watir::IE.attach(:url, 'http://privateurl.asmx/
> wsresponse')
>      @b2.maximize
> xml = @b2.html
>      doc = REXML::Document.new(xml)
>      WID = REXML::XPath.first(doc.root, '//WID/text()')
>      WID == (data['WIDTestField'])
>
> The reason I attempted "xml = @b2.html" is because when I view the
> source of the window that contains the response from the WS, it just
> shows the XML. Needless to say that didn't work, and I didn't really
> expect it to however I thought I would give it a shot. I then went to
> irb on the command line and had a look at what "@b2.html" actually
> looked like. I was expecting to see the xml without formatting however
> there was a lot more to it than what the page source showed. This
> would explain the error message in my respec results.html:
>
> #<REXML::ParseException: missing attribute quote
> Line:
> Position:
> Last 80 unconsumed characters:
> <SPAN class=b>&nbsp;</SPAN> <SPAN class=m>&lt;/</SPAN><SPAN
> class=t>Client</SPAN>>
> c:/ruby/lib/ruby/1.8/rexml/parsers/baseparser.rb:345:in `pull'
> c:/ruby/lib/ruby/1.8/rexml/parsers/treeparser.rb:21:in `parse'
> c:/ruby/lib/ruby/1.8/rexml/document.rb:204:in `build'
> c:/ruby/lib/ruby/1.8/rexml/document.rb:42:in `initialize'
> ./tests/WsRequestClientByWid_test.rb:36:in `new'
> ./tests/WsRequestClientByWid_test.rb:36
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/example/
> example_methods.rb:81:in `instance_eval'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/example/
> example_methods.rb:81:in `eval_block'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/example/
> example_methods.rb:15:in `execute'
> c:/ruby/lib/ruby/1.8/timeout.rb:48:in `timeout'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/example/
> example_methods.rb:12:in `execute'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/example/
> example_group_methods.rb:245:in `execute_examples'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/example/
> example_group_methods.rb:244:in `each'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/example/
> example_group_methods.rb:244:in `execute_examples'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/example/
> example_group_methods.rb:141:in `run'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/runner/
> example_group_runner.rb:22:in `run'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/runner/
> example_group_runner.rb:21:in `each'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/runner/
> example_group_runner.rb:21:in `run'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/runner/options.rb:
> 115:in `run_examples'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/lib/spec/runner/
> command_line.rb:10:in `run'
> c:/ruby/lib/ruby/gems/1.8/gems/rspec-1.1.11/bin/spec:4
> c:/ruby/bin/spec:16:in `load'
> c:/ruby/bin/spec:16
> ...
> missing attribute quote
> Line:
> Position:
> Last 80 unconsumed characters:
> <SPAN class=b>&nbsp;</SPAN> <SPAN class=m>&lt;/</SPAN><SPAN
> class=t>Client</SPAN>
> Line:
> Position:
> Last 80 unconsumed characters:
> <SPAN class=b>&nbsp;</SPAN> <SPAN class=m>&lt;/</SPAN><SPAN
> class=t>Client</SPAN>
>
> Basically I was wondering if any one could suggest a way of me being
> able to use rexml without having to save any files and just using the
> xml response on the second IE window that is opened as a result of the
> request.
>
> Thanks again guys. I really appreciate your guidance.
>
>
> On Dec 5, 3:37 am, "Richard Lawrence" <[email protected]> wrote:
>> You really don't want to be reinventing XML parsing (badly) with
>> string substitution or regular expressions. Given a string with your
>> XML in it, theREXMLcode to get the values you want would look
>> something like the following. You'll have to use something like
>> Net::Http to actually make the web service call to get the XML string.
>> There are some decent examples 
>> here:http://rubylearning.com/blog/2008/04/25/yahoo-web-services-in-ruby/.
>>
>> As Alex recommended, play around in irb with this to get a feel for it.
>>
>> require 'rexml/document'
>>
>> xml = '<?xml version="1.0"
>> ?><parent><firstName>Foo</firstName><lastName>Bar</lastName></parent>'
>>
>> doc =REXML::Document.new(xml)
>>
>> firstName =REXML::XPath.first(doc.root, '//firstName/text()')
>> lastName =REXML::XPath.first(doc.root, '//lastName/text()')
>>
>> Richard
>>
>>
>>
>> On Thu, Dec 4, 2008 at 4:38 AM, Alex Collins <[email protected]> 
>> wrote:
>>
>> > A useful general principle if you are wondering if something will work
>> > is to try it. In Ruby, start IRB (type irb at the command line) then
>> > type your ruby code. Irb will show you the results after each line.
>> > You do not need $ signs (ruby global variable) but you must certainly
>> > quote your strings. However your code will not work as there is no -
>> > method for a string.
>>
>> > Instead, you could use the sub or gsub methods:
>>
>> > a = "aba"
>> > a.gsub 'a', 'c'
>> > => "cbc"
>>
>> > In the simple case, it sounds like you want to use a regular
>> > expression (regexp) to do pattern recognition. Results of matching are
>> > stores in MatchData objects. Something like:
>>
>> > re = /<pattern>(.*)<\pattern/>/
>> > matchdata = string.match(re)
>> > puts matchdata.captures
>>
>> > However, if you want to do more than this you would be better using
>> >REXML as Richard suggested. Alternatively, use a tool designed for
>> > testing XML webservices eg SOAPUI. Watir is designed for testing
>> > websites.
>>
>> > You might want to read a ruby tutorial though to get a better idea of
>> > how to use ruby.
>>
>> > Hope this helps.
>>
>> > On 4 Dec 2008, at 06:40, winstan <[email protected]> wrote:
>>
>> >> Would i be able to do some thing like this:
>>
>> >> $a = <ShortName>TESTA</ShortName>
>> >> $b = <ShortName>
>> >> $c = </ShortName>
>> >> $d = a - b
>> >> $e = d - c
>>
>> >> which in turn would make $e "TESTA"?
>>
>> >> On Dec 4, 4:55 pm, "Richard Lawrence" <[email protected]> wrote:
>> >>> Why are you accessing the web service using Watir and IE? Will end
>> >>> users of the web service access it with a browser? If not, and if
>> >>> you're just using the web service to get data to use in other GUI
>> >>> tests, you might find something like Net::Http andREXMLto be more
>> >>> appropriate for this part of your script.
>>
>> >>> Richard
>>
>> >>> --
>> >>> Richard Lawrence
>> >>> Certified Scrum Coach
>> >>> Founder and Principal Consultant, Humanizing Work, LLC
>> >>> 303-895-7688
>> >>> rich...@humanizingwork.comwww.humanizingwork.comwww.richardlawrence.info
>>
>> >>> On Wed, Dec 3, 2008 at 9:29 PM, winstan
>> >>> <[email protected]> wrote:
>>
>> >>>> Hi all,
>>
>> >>>> I'm trying to capture a variety of data in an xml response from a
>> >>>> web
>> >>>> service, that is served up via IE and the GUI, however when I
>> >>>> interrogate the data using the IE dev toolbar I notice that all the
>> >>>> element properties render useless as they are all of the same nature
>> >>>> and properties.
>>
>> >>>> Bellow is an extract from an example xml response in which I want to
>> >>>> capture the given Shortname and Long name (TestA) and set them as
>> >>>> variables for use later in the script when accessing another system
>> >>>> and validating the data between the two GUI's.
>>
>> >>>> <ShortName>TESTA</ShortName>
>> >>>> <LongName>TestA</LongName>
>>
>> >>>> I hope the information provided is sufficient and understandable.
>>
>> >>>> Thanks again- Hide quoted text -
>>
>> >>> - Show quoted text -- Hide quoted text -
>>
>> - Show quoted text -
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Watir General" group.
To post to this group, send email to [email protected]
Before posting, please read the following guidelines: 
http://wiki.openqa.org/display/WTR/Support
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/watir-general
-~----------~----~----~----~------~----~------~--~---

Reply via email to