当前位置: 首页 > 知识库问答 >
问题:

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

公良同
2023-03-14

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

但我怀疑阉羊你可以使用WebElements当驱动程序已经移动到另一帧。

例子:

>

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

    我对elmTopBar的“旧”引用是否仍然可以从这个驱动程序位置(相同的驱动程序对象)工作,或者我只会在驱动程序每次指向frame2时工作(这意味着我必须切换每次HomePage需要TopBar中的某些内容时初始化TopBar对象)?

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

    提前谢谢!

  • 共有1个答案

    公冶森
    2023-03-14

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

     类似资料:
    • 我无法将驱动程序/对象传递到下一个类/页,并且在第一个/开始类中具有相同的NullPointerException。 PageObject类-SearchResultsPage: PageObject类主页: 测试等级: 我有两个问题: 1.当我运行测试检查IsHomePage()-FAILS(NullPointerExcema)和ChangeMoney cy()PASS。我不知道为什么第一次测试

    • 在Selenium PageObjects中,我没有实例化任何web驱动程序实例,也没有如下所示进行编码 我试图在Selenium Page对象函数中实现以下代码。 有谁能建议我,在使用页面对象模型时,如何在上述代码中使用webdriver实例?

    • 使用mongo c#驱动程序的连池和等待队列出现问题。 有没有办法从MongoClient获取指标?活动连接的数量、连接池的大小、等待队列的大小等。

    • 问题内容: 我正在尝试运行一个ruby文件,该文件将使用seleniumwebdriver启动chrome驱动程序。我有selenium独立服务器2.35.0。和chromedriver可执行文件已安装。我正在通过运行服务器来启动 两个会话正在启动,chrome驱动程序无法启动。 这是在我使用以下文件运行文件之后 我对此并不陌生,无法找出问题所在。而且,我也试图让它无头运行,所以我正在运行Xvfb

    • 我试图运行一个ruby文件,这将启动chrome驱动程序使用selenium WebDriver。我有selenium独立服务器2.35.0。和chromedriver可执行文件安装。我通过运行来启动服务器, 这是在我使用 我对此很陌生,不知道哪里出了问题。我也试图无头运行它,所以我有Xvfb运行。有人能帮我指出我犯的错误并启动chromedriver吗? 更新: 谁能帮我弄清楚出了什么问题吗?

    • 我浪费了很多时间试图在Windows 8.1中成功安装我的平板电脑的ADB驱动程序。所以在这里我会贴出我所做的,以防有人有同样的问题。