【发布时间】:2017-10-16 17:23:59
【问题描述】:
我正在尝试使用 selenium(java) 自动化网页。
我正在开发一种自动化工具,可以使用它来监视和保存WebElement。这些保存的 webobjects 可用于稍后执行某些操作。
当监视WebElement 时,我将获得(x,y) 坐标,我将使用该坐标执行以下返回WebElement 的脚本:
webObject = (WebElement) driver.executeScript(String.format("return document.elementFromPoint(%s, %s);",new Object[] { x, y }), new Object[0]);
如果(x,y) 位于不同的框架上,此脚本将返回WebElement 中的Frame,可用于切换驱动程序。我继续执行相同的脚本,直到我得到不是Frame 的WebElement。在保存它的同时,我保存了相对于当前Frame 的 xPath 和我目前已切换的帧的 ID。
稍后,在执行某些操作时,我会根据 Frames 和 xPath 的 ID 找到 WebElement。
那么,开发人员是否有遵循惯例/标准来始终为 frame/iframe 创建 ID 属性?如果这不是真的,我可以依赖哪些其他属性?
【问题讨论】:
-
id 是可选的。目前还不清楚你真正想要做什么以及基于什么......