使用拖放偏移量时抓取光标(Python/Selenium)

使用拖放偏移量时抓取光标(Python/Selenium),python,selenium,Python,Selenium,我需要拖动此比例,运行此代码时: HandScale = browser.find_element_by_xpath('//*[@data-xform="scale"]') GridLineX = browser.find_element_by_class_name('outlined') bottomLeft = browser.find_element_by_class_name('bottomLeft') print GridLineX.size action_chains = Actio

我需要拖动此比例,运行此代码时:

HandScale = browser.find_element_by_xpath('//*[@data-xform="scale"]')
GridLineX = browser.find_element_by_class_name('outlined')
bottomLeft = browser.find_element_by_class_name('bottomLeft')
print GridLineX.size
action_chains = ActionChains(browser)
action_chains.drag_and_drop_by_offset(HandScale, 30, 30).click_and_hold(HandScale).perform()
它仍然具有如下所示的抓取效果:


在运行脚本的其他部分之前,是否有任何方法可以消除此效果?

我认为您只需要
操作链中的
release()
函数就可以了。要在当前文件末尾添加的行为:

action_chains.release().perform()
在反馈无效后编辑:如果您在现有的
操作链中执行
释放()
,只需在
单击并按住(手动缩放)
后添加一个
暂停()
,使单击实际上被按住而不是立即松开,该怎么办。最后,由于您在
单击并按住(HandScale)
中使用了webelement参数,因此我将尝试使用
释放(HandScale)
在该元素上释放。因此,如果您使用以下选项,您的
操作链可能会执行您想要的操作:

 action_chains.drag_and_drop_by_offset(HandScale, 30, 30).click_and_hold(HandScale).pause(5).release(HandScale).perform()
如果不起作用,WebDriver API有一个名为
reset_actions()
的方法,根据文档,“清除已存储在本地和远程端的操作”。我会在您当前的
操作链
下添加它,但您可以尝试在当前代码中的
perform()
之前插入它。要添加的行如下所示:

action_chains.reset_actions().perform()
如果这些都不适合你,你可以试试

driver.execute_script("arguments[0].removeAttribute('cursor')", element")

如果您需要,我想我可以帮您弄清楚,如果上述任何一项都不起作用,应该执行什么。

那么您的问题是,在抓取页面后如何释放或“删除”页面?action\u chains.release()会起作用吗?谢谢!有机会我会试试的,我会告诉你的。它还没起作用。还有其他想法吗?好的,我有机会我会试试的。非常感谢。当你说它不起作用时,你的意思是,该元素在该div上仍然有
光标:抓取
?@AliAl Jabur看看我对答案所做的编辑,看看你是否能让鼠标释放。让我知道进展如何!好的,非常感谢,伙计,等我有时间的时候我会看一看的。嘿,伙计,嗯,它们都没用。你能帮我看一下excute_脚本吗。