<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:mule="http://www.mulesoft.org/schema/mule/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://www.mulesoft.org/schema/mule/selenium">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"></xs:import>
  <xs:import schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" namespace="http://www.springframework.org/schema/beans"></xs:import>
  <xs:import schemaLocation="http://www.mulesoft.org/schema/mule/core/current/mule.xsd" namespace="http://www.mulesoft.org/schema/mule/core"></xs:import>
  <xs:import schemaLocation="http://www.mulesoft.org/schema/mule/devkit/current/mule-devkit.xsd" namespace="http://www.mulesoft.org/schema/mule/devkit"></xs:import>
  <xs:simpleType name="integerType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:integer"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="decimalType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:decimal"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="floatType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:float"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="doubleType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:double"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="dateTimeType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:dateTime"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="longType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:long"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="byteType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:byte"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="booleanType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:boolean"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="anyUriType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:anyURI"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="charType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:minLength value="1"></xs:minLength>
          <xs:maxLength value="1"></xs:maxLength>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:complexType name="XmlType">
    <xs:sequence>
      <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
    </xs:sequence>
    <xs:attribute name="ref" use="optional" type="xs:string">
      <xs:annotation>
        <xs:documentation>The reference object for this parameter</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:element xmlns:devkit="http://www.mulesoft.org/schema/mule/devkit" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="config" substitutionGroup="mule:abstract-extension" devkit:javaClass="org.mule.modules.selenium.config.SeleniumModuleLifecycleAdapter">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mule:abstractExtensionType">
          <xs:annotation>
            <xs:documentation>Selenium WebDriver is a tool for automating testing web applications, and in particular to verify that they work as
expected. It aims to provide a friendly API that's easy to explore and understand, which will help make your tests
easier to read and maintain.</xs:documentation>
          </xs:annotation>
          <xs:attribute name="name" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>Give a name to this configuration so it can be later referenced by config-ref.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/selenium" name="driver" default="HTMLUNIT" use="optional" type="SeleniumWebDriverEnumType">
            <xs:annotation>
              <xs:documentation>Web driver to use</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get" substitutionGroup="mule:abstract-message-processor" type="GetType">
    <xs:annotation>
      <xs:documentation>Load a new web page in the current browser window. This is done using an HTTP GET operation,
and the method will block until the load is complete. This will follow redirects issued either
by the server or as a meta-redirect from within the returned HTML. Should a meta-redirect
"rest" for any duration of time, it is best to wait until this timeout is over, since should
the underlying page change whilst your test is executing the results of future calls against
this interface will be against the freshly loaded page. Synonym for
.
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="url" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The URL to load. It is best to use a fully qualified URL</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-current-url" substitutionGroup="mule:abstract-message-processor" type="GetCurrentUrlType">
    <xs:annotation>
      <xs:documentation>Get a string representing the current URL that the browser is looking at.
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetCurrentUrlType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-title" substitutionGroup="mule:abstract-message-processor" type="GetTitleType">
    <xs:annotation>
      <xs:documentation>The title of the current page.
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetTitleType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="find-elements" substitutionGroup="mule:abstract-message-processor" type="FindElementsType">
    <xs:annotation>
      <xs:documentation>Find all elements within the current page using the given mechanism.
This method is affected by the 'implicit wait' times in force at the time of execution. When
implicitly waiting, this method will return as soon as there are more than 0 items in the
found collection, or will return an empty list if the timeout is reached.
&lt;p/&gt;
Only one of the attributes can be used at any given time.
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="FindElementsType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="id" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The value of the "id" attribute to search for</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="linkText" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The exact text to match against</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="partialLinkText" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The text to match against</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The value of the "name" attribute to search for</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tagName" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The element's tagName</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="xpathExpression" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The xpath to use</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="className" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The value of the "class" attribute to search for</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="find-element" substitutionGroup="mule:abstract-message-processor" type="FindElementType">
    <xs:annotation>
      <xs:documentation>Find the first  using the given method.
This method is affected by the 'implicit wait' times in force at the time of execution.
The findElement(..) invocation will return a matching row, or try again repeatedly until
the configured timeout is reached.
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="FindElementType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="id" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The value of the "id" attribute to search for</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="linkText" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The exact text to match against</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="partialLinkText" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The text to match against</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The value of the "name" attribute to search for</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tagName" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The element's tagName</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="xpathExpression" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The xpath to use</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="className" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The value of the "class" attribute to search for   * @return The first matching element on the current page</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="click" substitutionGroup="mule:abstract-message-processor" type="ClickType">
    <xs:annotation>
      <xs:documentation>Click the element at the payload. If this causes a new page to load, this method will block until the page
has loaded. At this point, you should discard all references to this element and any further
operations performed on this element will have undefined behaviour unless you know that the
element and the page will still be present. If click() causes a new page to be loaded via an
event or is done by sending a native event (which is a common case on Firefox, IE on Windows)
then the method will *not* wait for it to be loaded and the caller should verify that a new
page has been loaded.
&lt;p/&gt;
If this element is not clickable, then this operation is a no-op since it's pretty common for
someone to accidentally miss the target when clicking in Real Life
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ClickType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="submit" substitutionGroup="mule:abstract-message-processor" type="SubmitType">
    <xs:annotation>
      <xs:documentation>If the element at the payload is a form, or an element within a form, then this will be submitted to
the remote server. If this causes the current page to change, then this method will block until
the new page is loaded.
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="SubmitType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="send-keys" substitutionGroup="mule:abstract-message-processor" type="SendKeysType">
    <xs:annotation>
      <xs:documentation>Use this method to simulate typing into an element, which may set its value. The payload
must be of type 
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="SendKeysType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="keys" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Keys to send</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="clear" substitutionGroup="mule:abstract-message-processor" type="ClearType">
    <xs:annotation>
      <xs:documentation>If the element at the payload is a text entry element, this will clear the value. Has no effect on other
elements. Text entry elements are INPUT and TEXTAREA elements.
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ClearType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-attribute" substitutionGroup="mule:abstract-message-processor" type="GetAttributeType">
    <xs:annotation>
      <xs:documentation>Get the value of a the given attribute of the element. Will return the current value, even if
this has been modified after the page has been loaded. More exactly, this method will return
the value of the given attribute, unless that attribute is not present, in which case the value
of the property with the same name is returned. If neither value is set, null is returned. The
"style" attribute is converted as best can be to a text representation with a trailing
semi-colon. The following are deemed to be "boolean" attributes, and will return either "true"
or "false":
&lt;p/&gt;
async, autofocus, autoplay, checked, compact, complete, controls, declare, defaultchecked,
defaultselected, defer, disabled, draggable, ended, formnovalidate, hidden, indeterminate,
iscontenteditable, ismap, itemscope, loop, multiple, muted, nohref, noresize, noshade,
novalidate, nowrap, open, paused, pubdate, readonly, required, reversed, scoped, seamless,
seeking, selected, spellcheck, truespeed, willvalidate
&lt;p/&gt;
Finally, the following commonly mis-capitalized attribute/property names are evaluated as
expected:
&lt;p/&gt;
&lt;ul&gt;
&lt;li&gt;"class"
&lt;li&gt;"readonly"
&lt;/ul&gt;
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetAttributeType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The name of the attribute.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="is-selected" substitutionGroup="mule:abstract-message-processor" type="IsSelectedType">
    <xs:annotation>
      <xs:documentation>Determine whether or not this element is selected or not. This operation only applies to input
elements such as checkboxes, options in a select and radio buttons.
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="IsSelectedType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="is-enabled" substitutionGroup="mule:abstract-message-processor" type="IsEnabledType">
    <xs:annotation>
      <xs:documentation>Is the element currently enabled or not? This will generally return true for everything but
disabled input elements.
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="IsEnabledType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-text" substitutionGroup="mule:abstract-message-processor" type="GetTextType">
    <xs:annotation>
      <xs:documentation>Get the visible (i.e. not hidden by CSS) innerText of this element, including sub-elements,
without any leading or trailing whitespace.
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetTextType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/selenium" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="until" substitutionGroup="mule:abstract-message-processor" type="UntilType">
    <xs:annotation>
      <xs:documentation>Wait until the condition is successful
&lt;p/&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="UntilType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:group ref="mule:messageProcessorOrOutboundEndpoint" maxOccurs="unbounded" minOccurs="0"></xs:group>
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/selenium" name="timeOutInSeconds" default="10" use="optional" type="longType">
          <xs:annotation>
            <xs:documentation>The timeout in seconds when an expectation is called</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="text" use="optional" type="xs:string"></xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="SeleniumWebDriverEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="FIREFOX"></xs:enumeration>
          <xs:enumeration value="CHROME"></xs:enumeration>
          <xs:enumeration value="HTMLUNIT"></xs:enumeration>
          <xs:enumeration value="ANDROID"></xs:enumeration>
          <xs:enumeration value="IPHONE"></xs:enumeration>
          <xs:enumeration value="INTERNET_EXPLORER"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
</xs:schema>