title: Cannot find button element, but can find sibling elements
body: <p>Html is here (note - this part is nested in an iframe):</p>
  
  <pre><code>&lt;div data-reactroot=""&gt;
    &lt;div class="src-scenes-authenticated-components-sign-in-form-styles__main--I0vWu"&gt;
      &lt;div class="src-scenes-authenticated-components-sign-in-form-styles__featureList--2RQdY"&gt;&lt;/div&gt;
      &lt;button class="src-components-button-styles__defaultButtonTheme--2-m2n src-components-button-styles__button--2hZHd"&gt;
        &lt;div class="src-components-button-styles__content--28F4J"&gt;
           &lt;div class="src-scenes-authenticated-components-sign-in-form-styles__signInButton--3AQAr"&gt;Sign In&lt;/div&gt; 
        &lt;/div&gt;  
      &lt;/button&gt;
      &lt;div class="src-scenes-authenticated-components-sign-in-form-styles__footer--1kMhz"&gt;&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p>Here is how I've tried targeting the <code>&lt;button&gt;</code> element:</p>
  
  <p><code>.elementByXPath('/html/body/div[2]/div/div') // parent div of button
   .elementByXPath('/html/body/div[2]/div/div/div[1]') // first child 
   .elementByXPath('/html/body/div[2]/div/div/div[2]') // sibling AFTER button
   .elementByXPath('/html/body/div[2]/div/div/button') // error - NoSuchElement</code></p>
  
  <p>I've tried finding that button using <code>child::button</code>, and <code>following-sibling::button</code>...still no luck. I've also tried finding the <code>&lt;div&gt;</code> elements nested within the button. Still can't find it. I have also tried finding the button element after finding the first child (since it is the second child), still get the same error (NoSuchElement).</p>
  
  <p>Another thing I tried was <code>.moveTo()</code>...which does work, but when I click on it nothing happens. </p>
  
  <p>What am I missing? </p>
  
  <p>Full test code here:</p>
  
  <pre><code>import wd, { asserters } from 'wd';
  import configureLogging from './helpers/logging';
  import { setup, config } from './helpers/config.js';
  
  const {
    capabilities,
    testTimeout } = config;
  
  export default function owaChromeLogin() {
    describe('Login flow via OWA for Chrome', function() {
      this.timeout(testTimeout);
      let driver;
      setup();
  
      before(function() {
        driver = wd.promiseChainRemote();
        configureLogging(driver);
  
        let desired = {
          ...capabilities.owa.chrome
        };
  
        return driver.init(desired);
      });
  
      after(function() {
        return driver;
        .quit();
      });
  
  
      // this is all to log into OWA AND the plugin
      it('should go to OWA and log in', function() {
        return driver
        .get('https://outlook.office365.com/owa/')
        .elementById('i0116') // username
        .type('****@****.onmicrosoft.com')
        .elementById('idSIButton9') // 'next' button
        .click()
        .waitForElementById('i0118', asserters.isDisplayed, 10000, 500) // password field...flaky - StaleElementReference
        .type('****')
        .elementById('idSIButton9') // 'sign in' button
        .click()
        .elementById('idSIButton9') // 'yes' button to stay signed in
        .click()
        .waitForElementByXPath('//*[@id="primaryContainer"]/div[4]/div/div[1]/div/div[4]/div[1]/div/div[1]/div/div/div[2]/div/button', asserters.isDisplayed, 5000, 300)
        .should.eventually.exist;
      });
  
      it('should click New Email', function() {
        return driver
        .elementByXPath('//*[@id="primaryContainer"]/div[4]/div/div[1]/div/div[4]/div[1]/div/div[1]/div/div/div[1]/div/button[1]')
        .click()
        .waitForElementByXPath('//*[@id="primaryContainer"]/div[4]/div/div[1]/div/div[4]/div[3]/div/div[5]/div[1]/div/div[3]/div[4]/div/div[1]/div[2]/div[3]/div[2]/div[1]/button[1]', asserters.isDisplayed, 5000, 300)
        .should.eventually.exist;
      });
  
      it('should be able to open the Outreach plugin', function() {
        return driver
        // wait for AND click on Outreach logo button (bottom RH)
        .waitForElementByXPath('//*[@id="primaryContainer"]/div[4]/div/div[1]/div/div[4]/div[3]/div/div[5]/div[1]/div/div[3]/div[4]/div/div[1]/div[2]/div[3]/div[2]/div[2]/div/div/div/div/div[1]/div/div/button', asserters.isDisplayed, 5000, 300)
        .click()
        .waitForElementByXPath('/html/body/div[12]/div/div/div/div/div/div/ul/li[5]', asserters.isDisplayed, 5000, 300) // "Open Outreach"
        .click()
        // need to target items within iframe
        .waitForElementById('exttsp0', asserters.isDisplayed, 10000, 300) // iframe (parent)
        .elementByXPath('/html/body/div[2]/div/div') // parent div of button
        .elementByXPath('/html/body/div[2]/div/div/div[1]') // first child
        .elementByXPath('/html/body/div[2]/div/div/button') // error - NoSuchElement
      });
    });
  }
  </code></pre>