【发布时间】:2015-07-14 09:38:55
【问题描述】:
是否可以使用 Selenium 网络驱动程序运行或获得 document.elementFromPoint 提供的相同功能?
【问题讨论】:
标签: python selenium selenium-webdriver
是否可以使用 Selenium 网络驱动程序运行或获得 document.elementFromPoint 提供的相同功能?
【问题讨论】:
标签: python selenium selenium-webdriver
您必须为此使用 JavaScript:
element = driver.execute_script("""
return document.elementFromPoint(arguments[0], arguments[1]);
""", x, y)
这假定x 和y 设置为整数值。在第一个参数之后传递给execute_script 的参数在JavaScript 端变为arguments[0], arguments[1] 等。 (这只是旧的arguments object。Selenium 将您提供给execute_script 的JavaScript 代码包装在一个函数中。)element 将是WebElement 或None 的一个实例,如果找不到的话。根据MDN page on this function None 值将在以下情况下发生:
如果指定的点在文档的可见范围之外或任一坐标为负,则结果为
null。
JavaScript null 在 Python 中变为 None。
【讨论】:
iframe 加载另一个站点的页面上。它有效。