【发布时间】:2012-12-05 10:20:08
【问题描述】:
我正在使用 PageObjects 在 Selenium Webdriver 中制作一个测试套件,但我怀疑即使驱动程序指向不同的框架,WebElement 引用的实例是否也可以工作? 我正在为其编写测试的站点有很多框架(不,我不能停止使用框架:-)),每个站点上的一个框架元素是一个顶栏。我想为那个框架制作一个单独的 PageObject,我可以从包含它的其他 PageObjects 中初始化和使用它。
但是我怀疑当驱动程序移动到另一个框架时你是否可以使用 WebElements。
例子:
- 制作并初始化新的 HomePage PageObject
- 切换到(frame1)。 SwitchTo(frame2)
- 从构造函数中创建一个 TopBar 对象,该对象使用上面的驱动程序位置初始化/实例化元素。我现在在名为 elmTopBar 的 PageObject/frame 中引用了一个 WebElement
在 HomePage 中,驱动程序从该框架切换(返回到 frame0)做一些其他工作
我对 elmTopBar 的“旧”引用是否仍然可以从该驱动程序位置(相同的驱动程序对象)使用,或者只有当驱动程序每次都指向 frame2 时才有效(这意味着我必须 switchTo + 初始化一个 TopBar 对象每次 HomePage 需要 TopBar 中的内容时)?
我知道,如果我从不同的框架进行元素搜索,它不会在其他框架中找到对象,但我的问题是,当您创建/保存对 WebElement 的引用时,它是否即使在完成之后仍然“永远”可用switchTo(frameX) 与驱动程序。
提前谢谢!
【问题讨论】:
标签: java selenium webdriver pageobjects