情景:web自动化模拟拖拽元素,从一个位置拖动到另一个画布canvas,使用ActionChains的方法没有实现,后来也换了pywin32库也没有实现最后找到pyautogui库 ,不过调试坐标点还是很麻烦,只能说是解决了问题。听说opencv处理坐标很方便,还没有使用,有兴趣可以试试。下面是当时用的代码,直接贴下面:
dragged = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "#centerControls > div:nth-child(1) > .controlsItem")))
dropped = wait.until(EC.visibility_of_element_located((By.ID, "canvas001")))
# print(dragged.rect)
# print(dropped.rect)
pyautogui.moveTo(dragged.location['x'] + 0, dragged.location['y'] + 180)
pyautogui.dragTo(dropped.location['x'] + 400, dropped.location['y'] + 400, duration=1)
dragged1 = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".centerControls > div:nth-child(1) > div")))
dropped1 = wait.until(EC.visibility_of_element_located((By.ID, "pane-1")))
# print(dragged1.rect)
# print(dropped1 .rect)
time.sleep(2)
pyautogui.moveTo(dragged1.location['x'] + 180, dragged1.location['y'] + 180)
pyautogui.dragTo(dropped1.location['x'] + 300, dropped1.location['y'] + 300, duration=1)
selenium 自动化使用ActionChains拖拽没有效果,解决方法pyautogui库
最新推荐文章于 2023-10-24 18:23:15 发布