我使用Selenium开发Web应用程序的自动化测试。我必须模拟位于canvas元素内的某些对象的点击。特别是,我使用vis.js来显示节点/边缘,我需要测试点击画布上可见的特定节点/边缘的效果。
问题是节点/边缘的位置不是预先确定的。因此,我不确定我应该如何定位它们。如果我能够找到画布对象位置的坐标,我就可以使用Selenium moveByOffset来模拟点击对象:
x, y = find_node_coordinates_on_canvas(node_id) # how to do this?
canvas = self.driver.find_element_by_id("vis_canvas")
action = ActionChains(self.driver).move_by_offset(x, y).click(canvas).release()
问题在于我不知道如何实施find_node_coordinates_on_canvas
。也就是说,给定画布上对象的标识符,如何找到其位置的坐标?