我想在基于Selenium的浏览器(不一定是无头)中找到存在于特定位置的元素。 也就是说,给定一组坐标(x,y),我想获取在该位置“存在”的元素列表。
我的目标是自动检测叠加层和模态。
提前谢谢!
答案 0 :(得分:0)
您可以在下面进行操作以按坐标(最后一个孩子)获取WebElement
element = driver.execute_script('return document.elementFromPoint(x, y);')
如果需要所有元素(element
及其所有祖先,直到html
节点):
elements = driver.execute_script('return document.elementsFromPoint(x, y);')
要将坐标从外部传递给JavaScript:
x_coord = 100
y_coord = 150
driver.execute_script('return document.elementsFromPoint(arguments[0], arguments[1]);', x_coord, y_coord)
或者如果您将坐标作为元组:
coords = 100, 150
driver.execute_script('return document.elementsFromPoint(arguments[0], arguments[1]);', *coords)