Java Selenium Webdriver-页面对象和驱动程序指针

Java Selenium Webdriver-页面对象和驱动程序指针,java,selenium,webdriver,pageobjects,Java,Selenium,Webdriver,Pageobjects,我正在使用PageObjects在SeleniumWebDriver中制作一个测试套件,但我怀疑即使驱动程序指向不同的框架,WebElement引用的实例是否可以工作? 我为之编写测试的站点有很多框架(不,我不能停止使用框架:-),每个站点上的一个框架元素是一个顶栏。我想为这个框架创建一个PageObject,我可以从包含它的其他PageObject中初始化和使用它 但我怀疑当驱动程序转到另一帧时,是否可以使用WebElements 例如: 创建并初始化新主页页面对象 切换到(第1帧)。切换到(

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

但我怀疑当驱动程序转到另一帧时,是否可以使用WebElements

例如:

  • 创建并初始化新主页页面对象
  • 切换到(第1帧)。切换到(第2帧)
  • 从构造函数中创建一个TopBar对象,使用上面的驱动程序位置初始化/实例化元素。我现在在页面对象/框架中引用了一个叫做elmTopBar的WebElement
  • 在主页中,驱动程序从该帧切换(返回到帧0)并执行一些其他工作

  • 我对elmTopBar的“旧”引用是否仍然可以从此驱动程序位置(相同的驱动程序对象)使用,或者我是否只能在每次驱动程序指向frame2时使用(意味着每次主页需要TopBar中的内容时,我必须切换到+初始化TopBar对象)

  • 我知道,如果我从不同的框架进行元素搜索,它将不会在其他框架中找到对象,但我的问题是,当您创建/保存对WebElement的引用时,即使使用驱动程序切换到(frameX)后,它是否“永远”可用


    提前谢谢

    否。每次都必须“重新查找”对象。Selenium可能会抱怨对象不再在缓存中或连接到DOM。

    我同意这一点。我一直在努力解决这个问题,但没有成功。此外,我发现Firefox似乎对框架更挑剔,在使用Firefox时,有时需要对框架内的元素使用Javascript执行器。