Selenium拖动在单击后更改的滑块

2024-09-29 17:22:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用selenium和python自动化滑动元素

我遇到了一个问题,例如,我要拖动的元素在单击后发生更改,并且我有一个过时的元素引用

"Message: stale element reference: element is not attached to the page document"

    element = driver.find_element_by_css_selector('#section_pickup > div.area__content > div.ng-scope > div.overlay-grey.ng-scope > div > div:nth-child(2) > div > div.ng-scope.pickup-shown-wrapper > div > span > span.irs-slider.to')
    actions.drag_and_drop_by_offset(element,-50,0)

这是滑块结构

<div
  ewf-pickup-slider="pickupWindowCtrl.rangeSliderOptions"
  class="ng-isolate-scope"
>
  <span class="irs js-irs-0 irs-with-grid"
    ><span class="irs"
      ><span class="irs-line" tabindex="-1"
        ><span class="irs-line-left"></span><span class="irs-line-mid"></span
        ><span class="irs-line-right"></span></span
      ><span class="irs-min" style="display: none; visibility: hidden">0</span
      ><span class="irs-max" style="display: none; visibility: hidden">1</span
      ><span
        class="irs-from"
        data-content="Earliest"
        style="visibility: visible; left: -2.12418%"
        >12:00</span
      ><span
        class="irs-to"
        data-content="Latest"
        style="visibility: visible; left: 95.5882%"
        >18:00</span
      ><span class="irs-single" style="visibility: hidden; left: 42.8105%"
        >12:00 — 18:00</span
      ></span
    ><span class="irs-grid" style="width: 97.7124%; left: 1.04379%"
      ><span class="irs-grid-pol" style="left: 0%"></span
      ><span
        class="irs-grid-text js-grid-text-0"
        style="left: 0%; margin-left: -2.94118%"
        >12:00</span
      ><span class="irs-grid-pol small" style="left: 20%"></span
      ><span class="irs-grid-pol small" style="left: 15%"></span
      ><span class="irs-grid-pol small" style="left: 10%"></span
      ><span class="irs-grid-pol small" style="left: 5%"></span
      ><span class="irs-grid-pol" style="left: 25%"></span
      ><span
        class="irs-grid-text js-grid-text-1"
        style="left: 25%; visibility: visible; margin-left: -2.94118%"
        >13:30</span
      ><span class="irs-grid-pol small" style="left: 45%"></span
      ><span class="irs-grid-pol small" style="left: 40%"></span
      ><span class="irs-grid-pol small" style="left: 35%"></span
      ><span class="irs-grid-pol small" style="left: 30%"></span
      ><span class="irs-grid-pol" style="left: 50%"></span
      ><span
        class="irs-grid-text js-grid-text-2"
        style="left: 50%; visibility: visible; margin-left: -2.94118%"
        >15:00</span
      ><span class="irs-grid-pol small" style="left: 70%"></span
      ><span class="irs-grid-pol small" style="left: 65%"></span
      ><span class="irs-grid-pol small" style="left: 60%"></span
      ><span class="irs-grid-pol small" style="left: 55%"></span
      ><span class="irs-grid-pol" style="left: 75%"></span
      ><span
        class="irs-grid-text js-grid-text-3"
        style="left: 75%; visibility: visible; margin-left: -2.94118%"
        >16:30</span
      ><span class="irs-grid-pol small" style="left: 95%"></span
      ><span class="irs-grid-pol small" style="left: 90%"></span
      ><span class="irs-grid-pol small" style="left: 85%"></span
      ><span class="irs-grid-pol small" style="left: 80%"></span
      ><span class="irs-grid-pol" style="left: 100%"></span
      ><span
        class="irs-grid-text js-grid-text-4"
        style="left: 100%; margin-left: -2.94118%"
        >18:00</span
      ></span
    ><span
      class="irs-bar"
      style="cursor: ew-resize; left: 1.14379%; width: 97.7124%"
    ></span
    ><span class="irs-shadow shadow-from" style="display: none"></span
    ><span class="irs-shadow shadow-to" style="display: none"></span
    ><span class="irs-slider from" style="left: 0%"></span
    ><span class="irs-slider to" style="left: 97.7124%"></span></span
  ><input
    type="text"
    ewf-range-slider="pickupSliderCtrl.sliderOptions"
    class="ng-isolate-scope irs-hidden-input"
    readonly=""
  />
</div>

我想拖放<span class="irs-slider to" style="left: 97.7124%">,点击它就会改变它的类和样式

有没有办法用硒来滑动它


Tags: totextdivstylejselementleftclass
1条回答
网友
1楼 · 发布于 2024-09-29 17:22:07
webdriver.ActionChains(driver).click_and_hold(sliderelement).move_by_offset(100, 0).perform()

使用“单击”和“按住并按偏移移动”,应单击滑块元素

相关问题 更多 >

    热门问题