Selenium拖动一个滑块,单击后会发生变化



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

我遇到了一个问题,比如我想拖动的元素在点击后发生了变化,并且我有一个过时的元素引用

"消息:过时的元素引用:元素未附加到页面文档中">

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%">,它正在改变它的类和样式

有没有办法用硒来滑动它?

webdriver.ActionChains(driver).click_and_hold(sliderelement).move_by_offset(100, 0).perform()

使用click_and_hold并按偏移量移动,您应该单击滑块元素