Misplaced Pages

Watir: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editContent deleted Content addedVisualWikitext
Revision as of 21:48, 29 April 2021 edit2603:8080:4303:2d00:9c32:362a:e9d8:6e7b (talk) Functionality: {{Update section|date=April 2021}}← Previous edit Latest revision as of 13:51, 8 November 2023 edit undoEmeraude (talk | contribs)Autopatrolled, Extended confirmed users, Pending changes reviewers82,429 editsNo edit summary 
(One intermediate revision by one other user not shown)
Line 10: Line 10:
| latest preview version = | latest preview version =
| latest preview date = | latest preview date =
| status = Active
| programming language = ] | programming language = ]
| operating system = ] | operating system = ]
Line 18: Line 17:
| website = {{URL|http://watir.com/}} | website = {{URL|http://watir.com/}}
}} }}
'''Watir''' ('''W'''eb '''A'''pplication '''T'''esting '''i'''n '''R'''uby, pronounced water), is an open-source family of ] libraries for automating web browsers.<ref>{{cite web |url=http://watir.com/ |publisher=Watir |accessdate=11 October 2012 |title=Watir is...}}<br>- {{cite web|title=A new member in the Watir-family |url=http://www.opera.com/developer/tools/operawatir/ |publisher=Opera Software |archiveurl=https://web.archive.org/web/20110213011440/http://www.opera.com/developer/tools/operawatir/ |archivedate=13 February 2011 |accessdate=8 November 2023}}<br>- {{cite web |title=Watir to WebDriver: Unit Test Frameworks |url=https://www.facebook.com/notes/facebook-engineering/watir-to-webdriver-unit-test-frameworks/10150314152278920 |website=Facebook |accessdate=11 October 2012 |url-access=subscription}}</ref><ref name="Agile Testing">{{cite book |first1=Lisa |last1=Crispin |first2=Janet |last2=Gregory |title=Agile Testing: A Practical Guide for Testers and Agile Teams|year=2008 |publisher=Addison-Wesley |isbn=9780321534460 |pages=172|url=https://books.google.com/books?id=68_lhPvoKS8C}}</ref> It drives ], ], ], ] and ], and is available as a ] gem.<ref name="Agile Testing" /><ref>{{cite book |last=Marick |first=Brian |title=Everyday Scripting with Ruby: For Teams, Testers, and You |year=2007 |publisher=Pragmatic Programmer |isbn=9780977616619 |page=2 |url=https://books.google.com/books?id=1vKBQgAACAAJ |via=Google Books}}</ref> Watir was primarily developed by Bret Pettichord and Paul Rogers.

'''Watir''' ('''W'''eb '''A'''pplication '''T'''esting '''i'''n '''R'''uby, pronounced water), is an open-source family of ] libraries for automating web browsers.<ref name=Watir>{{cite web|url=http://watir.com/|work=Watir web site|accessdate=11 October 2012|title=Watir home page}}</ref><ref name=Opera>{{cite web|title=A new member in the Watir-family|url=http://www.opera.com/developer/tools/operawatir/|work=Opera Software web site|publisher=Opera Software|accessdate=11 October 2012}}</ref><ref name=Facebook>{{cite web|title=Watir to WebDriver: Unit Test Frameworks|url=https://www.facebook.com/notes/facebook-engineering/watir-to-webdriver-unit-test-frameworks/10150314152278920|work=Facebook Engineering's Notes|publisher=Facebook|accessdate=11 October 2012}}</ref><ref name="Agile Testing">{{cite book|last=Crispin, Gregory|title=Agile Testing: A Practical Guide for Testers and Agile Teams|year=2008|publisher=Addison-Wesley|isbn=9780321534460|pages=172|url=https://books.google.com/books?id=68_lhPvoKS8C}}</ref> It drives ], ], ], ] and ], and is available as a ] gem.<ref name="Agile Testing" /><ref name="Everyday Scripting with Ruby">{{cite book|last=Marick|first=Brian|title=Everyday Scripting with Ruby: For Teams, Testers, and You|year=2007|publisher=Pragmatic Bookshelf|isbn=9780977616619|pages=2|url=https://books.google.com/books?id=1vKBQgAACAAJ}}</ref> Watir was primarily developed by Bret Pettichord and Paul Rogers.


== Functionality == == Functionality ==
Line 25: Line 23:
Watir project consists of several smaller projects. The most important ones are watir-classic, watir-webdriver and watirspec. Watir project consists of several smaller projects. The most important ones are watir-classic, watir-webdriver and watirspec.


=== Watir-classic === === Watir-Classic ===
Watir-classic makes use of the fact that Ruby has built in ] (OLE) capabilities. As such it is possible to drive Internet Explorer programmatically.<ref name=ThoughtWorks>{{cite web|title=Creating automated test scripts with Ruby and WATIR|url=http://www.thoughtworks.com/articles/automated-testing-using-ruby-and-watir|work=ThoughtWorks web site|publisher=ThoughtWorks|accessdate=11 October 2012}}</ref> Watir-classic operates differently than HTTP based test tools, which operate by simulating a browser. Instead Watir-classic directly drives the browser through the OLE protocol, which is implemented over the ] (COM) architecture. Watir-Classic makes use of the fact that Ruby has built-in ] (OLE) capabilities. As such it is possible to drive ''Internet Explorer'' programmatically.<ref>{{cite web |title=Creating automated test scripts with Ruby and WATIR |url=http://www.thoughtworks.com/articles/automated-testing-using-ruby-and-watir |publisher=ThoughtWorks |first=Jeremy |last=Suarez |date=16 September 2010|accessdate=11 October 2012}}</ref> Watir-Classic operates differently to HTTP-based test tools, which operate by simulating a browser. Instead, Watir-classic directly drives the browser through the OLE protocol, which is implemented over the ] (COM) architecture.


The COM permits interprocess communication (such as between Ruby and Internet Explorer) and dynamic object creation and manipulation (which is what the Ruby program does to the Internet Explorer). Microsoft calls this OLE automation, and calls the manipulating program an automation controller. Technically, the Internet Explorer process is the server and serves the automation objects, exposing their methods; while the Ruby program then becomes the client which manipulates the automation objects. The COM permits interprocess communication (such as between Ruby and ''Internet Explorer'') and dynamic object creation and manipulation (which is what the Ruby program does to the ''Internet Explorer''). Microsoft calls this "OLE automation", and calls the manipulating program an "automation controller". Technically, the ''Internet Explorer'' process is the server and serves the automation objects, exposing their methods; while the Ruby program then becomes the client which manipulates the automation objects.


=== Watir-webdriver === === Watir-Webdriver ===
Watir-webdriver is a modern version of the Watir API based on ]. Selenium 2.0 (selenium-webdriver) aims to be the reference implementation of the ] specification. In Ruby, Jari Bakken has implemented the Watir API as a wrapper around the Selenium 2.0 API. Not only is Watir-webdriver derived from Selenium 2.0, it is also built from the ] specification, so Watir-webdriver should always be compatible with existing ] specifications. Watir-Webdriver is a modern version of the Watir API based on ]. Selenium 2.0 (Selenium-Webdriver) aims to be the reference implementation of the ] specification. In Ruby, Jari Bakken has implemented the Watir API as a wrapper around the Selenium 2.0 API. Not only is Watir-Webdriver derived from Selenium 2.0, it is also built from the ] specification, so Watir-Webdriver should always be compatible with existing ] specifications.


=== Watirspec === === Watirspec ===
Line 49: Line 47:
* *
* *
* * ''''
* A Testers Workshop book by Jeff Morgan * '''', a testers' workshop book by Jeff Morgan


] ]

Latest revision as of 13:51, 8 November 2023

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Watir" – news · newspapers · books · scholar · JSTOR (October 2012) (Learn how and when to remove this message)
Watir
Developer(s)Bret Pettichord, Charley Baker, Angrez Singh, Jari Bakken, Jarmo Pertman, Hugh McGowan, Andreas Tolf Tolfsen, Paul Rogers, Dave Hoover, Sai Venkatakrishnan, Tom Copeland, Alex Rodionov, Titus Fortner
Stable release6.17 / August 28, 2020; 4 years ago (2020-08-28)
Written inRuby
Operating systemCross-platform
TypeSoftware testing framework for web applications
LicenseMIT license
Websitewatir.com

Watir (Web Application Testing in Ruby, pronounced water), is an open-source family of Ruby libraries for automating web browsers. It drives Internet Explorer, Firefox, Chrome, Opera and Safari, and is available as a RubyGems gem. Watir was primarily developed by Bret Pettichord and Paul Rogers.

Functionality

This section needs to be updated. Please help update this article to reflect recent events or newly available information. (April 2021)

Watir project consists of several smaller projects. The most important ones are watir-classic, watir-webdriver and watirspec.

Watir-Classic

Watir-Classic makes use of the fact that Ruby has built-in Object Linking and Embedding (OLE) capabilities. As such it is possible to drive Internet Explorer programmatically. Watir-Classic operates differently to HTTP-based test tools, which operate by simulating a browser. Instead, Watir-classic directly drives the browser through the OLE protocol, which is implemented over the Component Object Model (COM) architecture.

The COM permits interprocess communication (such as between Ruby and Internet Explorer) and dynamic object creation and manipulation (which is what the Ruby program does to the Internet Explorer). Microsoft calls this "OLE automation", and calls the manipulating program an "automation controller". Technically, the Internet Explorer process is the server and serves the automation objects, exposing their methods; while the Ruby program then becomes the client which manipulates the automation objects.

Watir-Webdriver

Watir-Webdriver is a modern version of the Watir API based on Selenium. Selenium 2.0 (Selenium-Webdriver) aims to be the reference implementation of the WebDriver specification. In Ruby, Jari Bakken has implemented the Watir API as a wrapper around the Selenium 2.0 API. Not only is Watir-Webdriver derived from Selenium 2.0, it is also built from the HTML specification, so Watir-Webdriver should always be compatible with existing W3C specifications.

Watirspec

Watirspec is executable specification of the Watir API, like RubySpec is for Ruby.

See also

References

  1. "Watir is..." Watir. Retrieved 11 October 2012.
    - "A new member in the Watir-family". Opera Software. Archived from the original on 13 February 2011. Retrieved 8 November 2023.
    - "Watir to WebDriver: Unit Test Frameworks". Facebook. Retrieved 11 October 2012.
  2. ^ Crispin, Lisa; Gregory, Janet (2008). Agile Testing: A Practical Guide for Testers and Agile Teams. Addison-Wesley. p. 172. ISBN 9780321534460.
  3. Marick, Brian (2007). Everyday Scripting with Ruby: For Teams, Testers, and You. Pragmatic Programmer. p. 2. ISBN 9780977616619 – via Google Books.
  4. Suarez, Jeremy (16 September 2010). "Creating automated test scripts with Ruby and WATIR". ThoughtWorks. Retrieved 11 October 2012.

External links

Categories: