2

I am trying to select an option from a dropdown which in a form in web page with Selenium webdriver using VBA. There are 8 checkbox each checkbox gives 2 or 3 dropdown to select, Checkbox 3 and 4 has the same option so I am unable to select the 2nd option in 4th checkbox.

bot.FindElementsByCss(".bs-FilterControl-item-checkbox")(4).Click ' to select 4th checkbox it works
bot.FindElementByXPath("//*[@value='false']").Click ' this code selects the 2nd option in the 3rd checkbox

so i tried the below code it results as NoSuchElementError :

bot.FindElementByXPath("//*[@value='false'][2]").Click

Here is the complete HTML code of form:

<form>
  <div class="bs-FilterControl-flyout">
    <div class="bs-FilterControl-flyout-inner">
      <div class="bs-FilterControl-flyout-gradient"></div>
      <div class="bs-FilterControl-flyout-contents">
        <div class="bs-FilterControl-flyout-header"><button class="Button bs-ButtonLegacy Flex-flex" type="button" href=""><div class="Button-fill bs-ButtonLegacy-fill Box-root Box-background--white Padding-horizontal--8 Padding-vertical--4 Flex-flex Flex-alignItems--baseline Flex-direction--row" style="position: relative;"><div class="TextAligner" style="line-height: 16px; font-size: 13px; flex: 0 0 auto;"></div><div class="Box-root Flex-flex Flex-alignItems--baseline Flex-direction--row Flex-justifyContent--flexStart" style="flex: 1 1 auto; line-height: 0;"><span class="Button-label Text-color--default Text-fontSize--13 Text-fontWeight--medium Text-lineHeight--16 Text-typeface--base Text-wrap--noWrap Text-display--block" style="margin-top: -1px; transform: translateY(0.5px);"><span>Clear</span></span></div></div></button>
          <h2><span>Filters</span></h2><button class="Button bs-ButtonLegacy Button--color Button--color--blue Flex-flex" type="submit" href=""><div class="Button-fill bs-ButtonLegacy-fill Box-root Box-background--blue Padding-horizontal--8 Padding-vertical--4 Flex-flex Flex-alignItems--baseline Flex-direction--row" style="position: relative;"><div class="TextAligner" style="line-height: 16px; font-size: 13px; flex: 0 0 auto;"></div><div class="Box-root Flex-flex Flex-alignItems--baseline Flex-direction--row Flex-justifyContent--flexStart" style="flex: 1 1 auto; line-height: 0;"><span class="Button-label Text-color--white Text-fontSize--13 Text-fontWeight--medium Text-lineHeight--16 Text-typeface--base Text-wrap--noWrap Text-display--block" style="margin-top: -1px; transform: translateY(0.5px);"><span>Done</span></span></div></div></button></div>
        <div
          class="bs-FilterControl-list">
          <div class=""><label class="bs-FilterControl-item-label"><input class="bs-FilterControl-item-checkbox" type="checkbox" value="created"><span>Date</span></label>
            <div class="bs-FilterControl-item-content">
              <div class="bs-FilterControl-item-children">
                <select>
                  <option value="inTheLast">is in the last</option>
                  <option value="equals">is equal to</option>
                  <option value="between">is between</option>
                  <option value="isOnOrAfter">is on or after</option>
                  <option value="isBefore">is before</option>
                  <option value="isBeforeOrOn">is before or on</option>
                </select>
                <div class="bs-FilterControl-input-container">
                  <div class="bs-FilterControl-inTheLast-container"><span><input class="bs-FilterControl-textInput" type="text" value=""></span>
                    <select class="bs-FilterControl-unitSelect">
                      <option value="days">days</option>
                      <option value="months">months</option>
                    </select>
                  </div>
                </div>
                <div class="bs-FilterControl-timezone">
                  <div class="Box-root">
                    <div class="Box-root Flex-flex Flex-alignItems--center Flex-direction--row Flex-justifyContent--flexStart" style="margin-left: -8px;">
                      <div class="Box-root Box-hideIfEmpty Margin-left--8">
                        <div class="bs-FilterControl-timezoneLabel"><span>Timezone:</span></div>
                      </div>
                      <div class="Box-root Box-hideIfEmpty Margin-left--8"><label class="Radio bs-FilterControl-timezoneRadio" for="radio46"><input title="CST/CDT - Chicago" class="Radio-source" id="radio46" type="radio"><div class="Radio-box Box-root Flex-flex Flex-alignItems--center" style="height: 20px;"><div class="Radio-target Box-root Box-background--blue"><div class="Radio-dot Box-root Box-background--white"></div></div></div><div class="Radio-copy Box-root Margin-left--8"><span class="Text-color--default Text-fontSize--14 Text-fontWeight--medium Text-lineHeight--20 Text-typeface--base Text-wrap--wrap Text-display--block">CST/CDT</span></div></label></div>
                      <div
                        class="Box-root Box-hideIfEmpty Margin-left--8"><label class="Radio bs-FilterControl-timezoneRadio" for="radio47"><input title="UTC - UTC" class="Radio-source" id="radio47" type="radio"><div class="Radio-box Box-root Flex-flex Flex-alignItems--center" style="height: 20px;"><div class="Radio-target Box-root Box-background--white"><div class="Radio-dot Box-root"></div></div></div><div class="Radio-copy Box-root Margin-left--8"><span class="Text-color--default Text-fontSize--14 Text-fontWeight--medium Text-lineHeight--20 Text-typeface--base Text-wrap--wrap Text-display--block">UTC</span></div></label></div>
                  </div>
                </div>
              </div>
            </div>
          </div>
      </div>
      <div class=""><label class="bs-FilterControl-item-label"><input class="bs-FilterControl-item-checkbox" type="checkbox" value="amount"><span>Amount</span></label>
        <div class="bs-FilterControl-item-content">
          <div class="bs-FilterControl-item-children">
            <select>
              <option value="equals">is equal to</option>
              <option value="between">is between</option>
              <option value="greaterThan">is greater than</option>
              <option value="lessThan">is less than</option>
            </select>
            <div class="bs-FilterControl-input-container"><span> </span><span><input class="bs-FilterControl-textInput" type="text" value=""></span></div>
          </div>
        </div>
      </div>
      <div class="bs-FilterControl-item--expanded"><label class="bs-FilterControl-item-label"><input class="bs-FilterControl-item-checkbox" type="checkbox" value="paid"><span>Status</span></label>
        <div class="bs-FilterControl-item-content">
          <div class="bs-FilterControl-item-children">
            <select>
              <option value="true">is successful</option>
              <option value="false">is failed</option>
              <option value="pending">is pending</option>
            </select>
          </div>
        </div>
      </div>
      <div class="bs-FilterControl-item--expanded"><label class="bs-FilterControl-item-label"><input class="bs-FilterControl-item-checkbox" type="checkbox" value="refunded"><span>Refunded</span></label>
        <div class="bs-FilterControl-item-content">
          <div class="bs-FilterControl-item-children">
            <select>
              <option value="true">is fully refunded</option>
              <option value="false">is not refunded</option>
              <option value="partial">is partially refunded</option>
            </select>
          </div>
        </div>
      </div>
      <div class=""><label class="bs-FilterControl-item-label"><input class="bs-FilterControl-item-checkbox" type="checkbox" value="captured"><span>Captured</span></label>
        <div class="bs-FilterControl-item-content">
          <div class="bs-FilterControl-item-children">
            <select>
              <option value="true">has been captured</option>
              <option value="false">has not been captured</option>
            </select>
          </div>
        </div>
      </div>
      <div class=""><label class="bs-FilterControl-item-label"><input class="bs-FilterControl-item-checkbox" type="checkbox" value="disputed"><span>Disputed</span></label>
        <div class="bs-FilterControl-item-content">
          <div class="bs-FilterControl-item-children">
            <select>
              <option value="true">is disputed</option>
              <option value="false">is not disputed</option>
            </select>
          </div>
        </div>
      </div>
      <div class=""><label class="bs-FilterControl-item-label"><input class="bs-FilterControl-item-checkbox" type="checkbox" value="source"><span>Payment source</span></label>
        <div class="bs-FilterControl-item-content">
          <div class="bs-FilterControl-item-children">
            <select>
              <option value="card">Card</option>
              <option value="bank_account">Bank Account</option>
              <option value="ach_credit_transfer">ACH Credit Transfer</option>
              <option value="ach_debit">ACH Debit</option>
              <option value="alipay">Alipay</option>
              <option value="bancontact">Bancontact</option>
              <option value="eps">EPS</option>
              <option value="giropay">Giropay</option>
              <option value="ideal">iDEAL</option>
              <option value="multibanco">Multibanco</option>
              <option value="p24">P24</option>
              <option value="sofort">SOFORT</option>
              <option value="three_d_secure">3D Secure</option>
            </select>
          </div>
        </div>
      </div>
    </div>
  </div>
  </div>
  </div>
</form>

0

1 Answer 1

2

Try

bot.FindElementByXPath("//*[text()='is not refunded']").Click

It matches the element on the desired text of the drop down option.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.