Selenium-Python-如何在特定位置找到元素?

时间:2018-11-19 10:49:50

标签: python selenium position

我想在基于Selenium的浏览器(不一定是无头)中找到存在于特定位置的元素。 也就是说,给定一组坐标(x,y),我想获取在该位置“存在”的元素列表。

我的目标是自动检测叠加层和模态。

提前谢谢!

1 个答案:

答案 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)