传递坐标并将光标移动到指定的坐标。当我第二次导航时,它无法正常工作
actions = ActionChains(driver)
actions.move_by_offset(x_axis,y_axis).click().perform()
actions.release().perform()
driver.get_screenshot_as_file(destination)
所以,我尝试在每次点击时初始化网页驱动程序,它可以运行:
clickCoordinate(browser,869, 95,dest1)
url=browser.current_url
try:
browser = get_selenium_driver()
browser.get(url)
except Exception as err:
logger.error("Error compiling data: %s", err)
clickCoordinate(browser,1047, 60,dest2)
请告知如何在不必每次初始化的情况下实现这一目标?
答案 0 :(得分:2)
我相信它是因为move_by_offset()相对于光标的当前位置移动。我在绝对坐标方面取得的成功是actions.move_to_element_with_offset(driver.find_element_by_tag_name('body'), x_axis,y_axis)
,它始终与页面的左上角相关,因为这是身体元素开始的地方。
答案 1 :(得分:1)
以下代码片段对我有用。 计算当前坐标减去先前的坐标并存储到变量中,这里是axis_x和axis_y然后应用move_by_offset并传递axis_x和axis_y以多次导航
axis_x = curr_x - prev_x
axis_y = curr_y - prev_y
actions.move_by_offset(axis_x,axis_y)。单击()。执行()
答案 2 :(得分:0)
问题与鼠标坐标重置有关。这可以通过在设置下一页坐标之前每次将坐标重置为0来解决。