python - 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 并按偏移量移动,您应该单击滑块元素
推荐阅读
- r - 在另一个函数中使用一个函数作为输入
- javascript - 如何从稀疏数组中删除元素?
- flutter - 如何修复文本小部件填充?
- javascript - Javascript - 具有多个偏移比较的相同日期
- android - 清单合并失败:属性应用程序
- django - 如何在 Django 中编写 sql COALESCE
- python-3.x - 为什么 cv2.VideoCapture(1) 需要四秒钟来检测运动?
- ios - 在 Google 地图自定义信息视图中显示 JSON 数据
- c - 在C语言中,如果我只是声明一个变量而不初始化它,编译器会为它保留空间吗?
- c++ - 如果 head 在 main 中本地声明,则链表的 void 递归反向函数的参数应该是什么?