1

enter image description here That's the box and I am trying to send text to 'Image description'

here's the HTML

<div id="mceu_95" class="mce-container mce-panel mce-floatpanel mce-window mce-in" hidefocus="1" role="dialog" aria-labelledby="mceu_95" aria-describedby="mceu_95-none" aria-label="Insert/edit image" style="border-width: 1px; z-index: 65537; left: 734px; top: 131px; width: 450px; height: 233px;">
  <div class="mce-reset" role="application">
    <div id="mceu_95-head" class="mce-window-head">
      <div id="mceu_95-title" class="mce-title">Insert/edit image</div>
      <div id="mceu_95-dragh" class="mce-dragh"></div><button type="button" class="mce-close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>
    <div id="mceu_95-body" class="mce-container-body mce-window-body mce-abs-layout" style="width: 450px; height: 140px;">
      <div id="mceu_95-absend" class="mce-abs-end"></div>
      <div id="mceu_96" class="mce-container mce-form mce-abs-layout-item mce-first mce-last" style="left: 0px; top: 0px; width: 450px; height: 140px;">
        <div id="mceu_96-body" class="mce-container-body mce-abs-layout" style="width: 450px; height: 140px;">
          <div id="mceu_96-absend" class="mce-abs-end"></div>
          <div id="mceu_107" class="mce-container mce-abs-layout-item mce-first mce-formitem" hidefocus="1" tabindex="-1" style="left: 15px; top: 15px; width: 420px; height: 30px;">
            <div id="mceu_107-body" class="mce-container-body mce-abs-layout" style="width: 420px; height: 30px;">
              <div id="mceu_107-absend" class="mce-abs-end"></div><label id="mceu_97-l" class="mce-widget mce-label mce-abs-layout-item mce-first" for="mceu_97" style="line-height: 15px; left: 0px; top: 8px; width: 134px; height: 15px;">Source</label>
              <div id="mceu_97" class="mce-combobox mce-filepicker mce-abs-layout-item mce-last"
                style="left: 134px; top: 0px; width: 286px; height: 30px;"><input id="mceu_97-inp" class="mce-textbox" value="" hidefocus="1" spellcheck="false" placeholder="" aria-labelledby="mceu_97-l" style="width: 276px;"><i id="mceu_97-status" class="mce-status mce-ico" style="display: none"></i></div>
            </div>
          </div>
          <div id="mceu_108" class="mce-container mce-abs-layout-item mce-formitem" hidefocus="1" tabindex="-1" style="left: 15px; top: 55px; width: 420px; height: 30px;">
            <div id="mceu_108-body" class="mce-container-body mce-abs-layout" style="width: 420px; height: 30px;">
              <div id="mceu_108-absend" class="mce-abs-end"></div><label id="mceu_98-l" class="mce-widget mce-label mce-abs-layout-item mce-first" for="mceu_98" style="line-height: 15px; left: 0px; top: 8px; width: 134px; height: 15px;">Image description</label><input id="mceu_98" hidefocus="1" class="mce-textbox mce-abs-layout-item mce-last"
                aria-labelledby="mceu_98-l" style="left: 134px; top: 0px; width: 276px; height: 28px;"></div>
          </div>
          <div id="mceu_109" class="mce-container mce-abs-layout-item mce-last mce-formitem" hidefocus="1" tabindex="-1" style="left: 15px; top: 95px; width: 420px; height: 30px;">
            <div id="mceu_109-body" class="mce-container-body mce-abs-layout" style="width: 420px; height: 30px;">
              <div id="mceu_109-absend" class="mce-abs-end"></div><label id="mceu_99-l" class="mce-widget mce-label mce-abs-layout-item mce-first" for="mceu_99" style="line-height: 15px; left: 0px; top: 8px; width: 134px; height: 15px;">Dimensions</label>
              <div id="mceu_99" class="mce-container mce-abs-layout-item mce-last"
                aria-labelledby="mceu_99-l" style="left: 134px; top: 0px; width: 286px; height: 30px;">
                <div id="mceu_99-body" class="mce-container-body mce-abs-layout" style="width: 286px; height: 30px;">
                  <div id="mceu_99-absend" class="mce-abs-end"></div><input id="mceu_100" hidefocus="1" maxlength="5" size="5" class="mce-textbox mce-abs-layout-item mce-first" aria-label="Width" style="left: 0px; top: 0px; width: 49px; height: 28px;"><span id="mceu_101" class="mce-widget mce-label mce-abs-layout-item"
                    style="line-height: 15px; left: 64px; top: 8px; width: 6px; height: 15px;">x</span><input id="mceu_102" hidefocus="1" maxlength="5" size="5" class="mce-textbox mce-abs-layout-item" aria-label="Height" style="left: 75px; top: 0px; width: 49px; height: 28px;">
                  <div
                    id="mceu_103" class="mce-checkbox mce-abs-layout-item mce-last mce-checked" unselectable="on" aria-labelledby="mceu_103-al" tabindex="-1" role="checkbox" aria-checked="true" style="left: 139px; top: 6px; width: 147px; height: 18px;"><i class="mce-ico mce-i-checkbox"></i><span id="mceu_103-al" class="mce-label">Constrain proportions</span></div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div id="mceu_104" class="mce-container mce-panel mce-foot" hidefocus="1" tabindex="-1" role="group" style="border-width: 1px 0px 0px; left: 0px; top: 0px; width: 450px; height: 46px;">
    <div id="mceu_104-body" class="mce-container-body mce-abs-layout" style="width: 450px; height: 46px;">
      <div id="mceu_104-absend" class="mce-abs-end"></div>
      <div id="mceu_105" class="mce-widget mce-btn mce-primary mce-abs-layout-item mce-first mce-btn-has-text" tabindex="-1" role="button" style="left: 337px; top: 10px; width: 50px; height: 26px;"><button id="mceu_105-button" role="presentation" type="button" tabindex="-1" style="height: 100%; width: 100%;"><span class="mce-txt">Ok</span></button></div>
      <div id="mceu_106" class="mce-widget mce-btn mce-abs-layout-item mce-last mce-btn-has-text"
        tabindex="-1" role="button" style="left: 390px; top: 10px; width: 50px; height: 26px;"><button id="mceu_106-button" role="presentation" type="button" tabindex="-1" style="height: 100%; width: 100%;"><span class="mce-txt">Cancel</span></button></div>
    </div>
  </div>
</div>
</div>

and here's my code

WebDriverWait(browser, 30).until(EC.presence_of_element_located((By.CLASS_NAME, 'mce-textbox mce-abs-layout-item mce-last'))).send_text('anything')

I tried pretty much every approach( ID, xpath, tag_name, css selectors) but nothing works I always end up with selenium.common.exceptions.TimeoutException error

vitaliis
  • 4,082
  • 5
  • 18
  • 40
Amr
  • 119
  • 1
  • 10
  • Does this answer your question? [Find div element by multiple class names?](https://stackoverflow.com/questions/21713280/find-div-element-by-multiple-class-names) – SiKing Apr 08 '21 at 00:15

1 Answers1

1

Try css locator:

locator = driver.find_element_by_css_selector(".mce-textbox.mce-abs-layout-item.mce-last")

The problem with id enter code herelocator is that it is changes each time. If it won't be 100% stable, make a click on this field and only then use send_keys

The second problem: You use send_text, but the method is named: send_keys()

vitaliis
  • 4,082
  • 5
  • 18
  • 40