Selenium 为什么moveByOffset()不适用于多个导航?
传递坐标并在指定坐标处移动光标。当我第二次导航时,它不工作Selenium 为什么moveByOffset()不适用于多个导航?,selenium,Selenium,传递坐标并在指定坐标处移动光标。当我第二次导航时,它不工作 actions = ActionChains(driver) actions.move_by_offset(x_axis,y_axis).click().perform() actions.release().perform() driver.get_screenshot_as_file(destination) 因此,我尝试为每次单击初始化web驱动程序,它可以工作: clickCoordinate(browser,869,
actions = ActionChains(driver)
actions.move_by_offset(x_axis,y_axis).click().perform()
actions.release().perform()
driver.get_screenshot_as_file(destination)
因此,我尝试为每次单击初始化web驱动程序,它可以工作:
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)
请就如何在不必每次初始化的情况下实现这一点提供建议?我认为这是因为move_by_offset()相对于光标的当前位置移动。对于绝对坐标,我成功地做到了
操作。通过偏移量将元素移动到元素(驱动程序。通过标记名称('body')、x轴、y轴查找元素)
始终相对于页面的左上角,因为那是body元素的开始位置。我认为这是因为通过偏移量移动元素()相对于光标的当前位置移动。我对绝对坐标的成功所做的是操作。将\u移动到带有\u偏移量的\u元素(驱动程序。通过\u标记\u名称('body')、x\u轴、y\u轴查找\u元素)
它将始终位于页面的左上角,因为body元素就是从这里开始的。问题与鼠标坐标重置有关。在设置下一页坐标之前,可通过每次将坐标重置为0,0来解决此问题。问题与鼠标坐标重置有关。在设置下一页坐标之前,每次都将坐标重置为0,0可以解决此问题。下面的代码片段适用于我。
计算当前坐标减去以前的坐标,并将其存储到变量中,这里是轴x和轴y,然后应用“按偏移移动”并通过轴x和轴y进行多次导航
轴x=当前x-上一个
轴y=当前y-上一个
操作。按偏移量移动(x轴,y轴)。单击()。执行()以下代码片段对我有效。 计算当前坐标减去以前的坐标,并将其存储到变量中,这里是轴x和轴y,然后应用“按偏移移动”并通过轴x和轴y进行多次导航 轴x=当前x-上一个 轴y=当前y-上一个
操作。按偏移量移动(x轴,y轴)。单击()。执行()感谢Dean W的快速响应,但我不想使用元素,不给元素我想要绝对坐标。这不是移动到绝对坐标或将光标坐标重置为0,0的内置方法。body元素应该始终存在于DOM中,并且应该始终包含整个页面,因此根据我的经验,它是绝对坐标的合适解决方法。是否有任何原因说明使用元素不适合您的需要?感谢Dean W的快速响应,但我不想使用元素,如果不提供元素I want absolute cordinatere,这不是移动到绝对坐标或将光标坐标重置为0,0的内置方式。body元素应该始终存在于DOM中,并且应该始终包含整个页面,因此根据我的经验,它是绝对坐标的合适解决方法。是否有任何原因说明使用元素不适合您的需要?您正在循环中进行此操作,我知道这是一年多以后的事情,您是否可以发布更多关于如何使其工作的代码?您正在循环中进行此操作,我知道这是一年多以后的事情,您是否可以发布更多关于如何使其工作的代码?