title: WebDriverWait with multiple conditions C#
body: <p><code>Wait.Until</code> gets a selector and returns an element.</p>
  
  <h2>First Question</h2>
  
  <p>How can you wait (poll) for multiple conditions to be met?</p>
  
  <p>Problem:</p>
  
  <pre><code>DefaultWait&lt;IWebDriver&gt; wait = new WebDriverWait(driver, timeout);
  IWebElement element = wait.Until(ExpectedConditions.ElementExists(selector));
  </code></pre>
  
  <p><code>Wait.Until</code> doesn't have an overload or a constructor with params...</p>
  
  <h2>Second Question</h2>
  
  <p><code>Wait.Until</code> appears to get only one condition per each poll.
  Is there a way to poll over multiple conditions?</p>
  
  <p>Meaning, in that same polling, check if element exists and also check if its visible  (which are two different things..)</p>
  
  <p>in 1 polling sequence,</p>
  
  <p>Something like the following:</p>
  
  <pre><code>        DefaultWait&lt;IWebDriver&gt; wait2 = new DefaultWait&lt;IWebDriver&gt;(driver);
          IWebElement element = wait2.Until&lt;IWebElement&gt;((d) =&gt;
          {
                ExpectedConditions.ElementExists(selector);
                ExpectedConditions.ElementIsVisible(selector);
                return d.FindElement(selector);
          });
  </code></pre>