我一直在尝试使用硒来绕过网站上的滑块验证(而不是破解我的网站,不用担心)
但是以某种方式drag_and_drop
功能无法拾取我选择的块。
该块的HTML:
<div class="h-slider-block" style="margin-left: 0px;"></div>
,将块拖动到最右边的位置将是:
<div class="h-slider-block" style="margin-left: 394px;"></div>
以及我用来拖动它的代码:
knob = browser.find_element_by_class_name('h-slider-block')
# ActionChains(browser).drag_and_drop_by_offset(knob, offset, 0).perform()
ActionChains(browser).click_and_hold(knob).move_by_offset(offset, 0).pause(0.5).release().perform()
offset
设置为394
。
代码运行正常,但是据我观察,浏览器未执行任何操作。我在上面尝试了两种组合,但是它们都不起作用。有想法吗?
更新:
Chrome浏览器版本:72.0.3626.121(正式版本)(64位)
ChromeDriver版本:2.46
macOS Mojave 10.14.3
答案 0 :(得分:0)
我很好奇你为什么在这里使用driver
knob = driver.find_element_by_class_name('h-slider-block')
和browser
。
ActionChains(browser).click_and_hold(knob).move_by_offset(offset, 0).pause(0.5).release().perform()
我不知道您的browser
和/或driver
是如何定义的,但是如果您在ActionChains中将browser
替换为driver
,这会有什么不同吗?
ActionChains(driver).click_and_hold(knob).move_by_offset(offset, 0).pause(0.5).release().perform()