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()
在运行我的脚本的其他部分之前,是否有办法移除这个效果?
最佳答案
我认为您只需要 action_chains
中的 release()
函数,它就是专门为执行此操作而设计的。要在当前文件末尾添加的行是:
action_chains.release().perform()
在反馈这不起作用后进行编辑:如果您在现有的 action_chains
中执行 release()
,然后简单地添加click_and_hold(HandScale)
之后的 pause()
以便实际保持点击而不是立即释放。最后,由于您在 click_and_hold(HandScale)
中使用了 webelement 参数,因此我会尝试使用 release(HandScale)
释放该元素。因此,如果您使用以下内容,您的 action_chains
可能会执行您想要的操作:
action_chains.drag_and_drop_by_offset(HandScale, 30, 30).click_and_hold(HandScale).pause(5).release(HandScale).perform()
如果 THAT 不起作用,WebDriver API 有一个名为 reset_actions()
的方法,根据文档“清除已经存储在本地和远端”。我会在您当前的 action_chains
下添加它,但您可以尝试在当前代码中的 perform()
之前插入它。要添加的行看起来像这样:
action_chains.reset_actions().perform()
如果这些都不适合你,你可以试试
driver.execute_script("arguments[0].removeAttribute('cursor')", element")
如果您需要,我认为可以帮助您确定在上述方法均无效的情况下要执行的操作。
关于python - 使用 drag_and_drop_by_offset 时抓取光标(Python/Selenium),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55172446/