1

我正在使用 PageObjects 在 Selenium Webdriver 中制作一个测试套件,但我怀疑即使驱动程序指向不同的框架,WebElement 引用的实例是否可以工作?我正在为其编写测试的站点有很多框架(不,我不能停止使用框架:-)),每个站点上的一个框架元素是一个顶栏。我想为那个框架制作一个单独的 PageObject,我可以从包含它的其他 PageObjects 中初始化和使用它。

但是我怀疑当驱动程序移动到另一个框架时您是否可以使用 WebElements。

例子:

  1. 制作并初始化新的 HomePage PageObject
  2. 切换到(帧 1)。切换到(frame2)
  3. 从构造函数中创建一个 TopBar 对象,该对象使用上面的驱动程序位置初始化/实例化元素。我现在在那个名为 elmTopBar 的 PageObject/frame 中引用了一个 WebElement
  4. 在 HomePage 中,驱动程序从该框架切换(返回到 frame0)做一些其他工作

  5. 我对 elmTopBar 的“旧”引用是否仍然可以从这个驱动程序位置(相同的驱动程序对象)使用,或者我只会在每次驱动程序都指向 frame2 时才能工作(这意味着我必须每次主页需要一些东西时 switchTo + 初始化一个 TopBar 对象顶栏)?

我知道如果我从不同的框架进行元素搜索,它不会在其他框架中找到对象,但我的问题是,当您创建/保存对 WebElement 的引用时,即使在执行 switchTo(frameX ) 与司机。

提前谢谢!

4

1 回答 1

2

不,您每次都必须“重新找到”该对象。Selenium 可能会抱怨对象不再在缓存中或附加到 DOM。

于 2012-12-18T09:17:46.080 回答