如何在不为每个函数运行新的浏览器窗口的情况下运行 PHPUnit Selenium 测试?

2023-11-25

我正在尝试使用 PHPUnit 运行硒测试用例。我做的第一件事是尝试登录功能,这很完美,但随后我想运行一个功能来检查登录后页面上的信息,但它会打开一个新浏览器,而不是在当前浏览器窗口中继续。这是一个问题的原因是因为该页面设置为在窗口关闭时删除登录身份验证,因此如果您使用 $this->url() 转到该页面,它会给出我需要登录的错误。这是我现在的代码,它启动浏览器并运行函数来测试登录表单,然后关闭浏览器,打开一个新浏览器并运行链接检查。这当然会导致由于身份验证错误而导致错误,因为窗口已关闭。我可以在一个函数中运行所有测试,但这确实是一种草率的编码,我想避免这种情况。有人知道如何解决这个问题吗?

<?php
    class TestMyTest extends PHPUnit_Extensions_Selenium2TestCase {
        public function setUp()
        {
            $this->setBrowser("firefox");
            $this->setBrowserUrl("https://**************************");
        }

        public function testLoginForm()
        {

            $this->url("login.php");
            $this->byLinkText('Forgot your password?');
            $form = $this->byCssSelector('form');
            $this->byName('username')->value('test');
            $this->byName('password')->value('1234');
            $form->submit();
        }


        public function testCheckForMainMenueLinks ()
        {
            $this->url("index.php");
            $this->byLinkText('Home');
            $this->byLinkText('Products');
            $this->byLinkText('About us');
            $this->byLinkText('Contact');
        }
    }
?>

共享浏览器会话Selenium2TestCase,你必须设置sessionStrategy => 'shared'在您的初始浏览器设置中:

public static $browsers = array(
    array(
        '...
        'browserName' => 'iexplorer',
        'sessionStrategy' => 'shared',
        ...
    )
);

替代方案(默认)是'isolated'.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不为每个函数运行新的浏览器窗口的情况下运行 PHPUnit Selenium 测试? 的相关文章

随机推荐

  • 以编程方式检索 Google Sheets 单元格边框样式

    有可能set the 范围边框样式和颜色 现在的问题是 我们怎样才能get以编程方式设置边框样式 我正在寻找类似的东西 var ss SpreadsheetApp getActiveSpreadsheet var sheet ss getS
  • Node.js 在断开连接事件时不发送套接字

    当有人连接到节点服务器时 我会保留一个包含所有套接字的数组 这样我就可以在需要时向每个人广播消息 或者循环用户来计算在线用户的数量等 所有这些工作正常 但是当触发断开连接事件时 我在参数中没有收到套接字 还有另一种方法可以知道哪个套接字刚刚
  • CSS 相当于 Photoshop 的 Justify-All

    我想采用 h2 元素并将其文本跨越其 div 的宽度 text align justify 仅当文本的宽度大于其容器的宽度时才展开文本 有点像 Photoshop 的 justify left CSS h2 text align justi
  • Swing,如何正确更新UI

    在 Swing 上进行一些操作后更新 UI 的正确方法是什么 例如 单击按钮后 调用的方法可能几乎是即时的 也可能需要几秒钟的时间 事实上 所有应用程序逻辑都是通过 Web 服务远程完成的 因此等待应用程序响应一段时间是正常的 我的按钮事件
  • opencv中的“InputArray”和“Mat”是否相同?

    例如 在文档中有 void cv absdiff InputArray src1 InputArray src2 OutputArray dst 是不是等同于 void cv absdiff Mat src1 Mat src2 Mat ds
  • C99 预处理器图灵完整吗?

    发现后增强预处理器的能力我发现自己在想 C99 预处理器图灵完整吗 如果没有的话 缺少什么才没有资格呢 宏不会直接递归扩展 但我们可以通过一些方法来解决这个问题 在预处理器中执行递归的最简单方法是使用延迟表达式 延迟表达式是需要更多扫描才能
  • Gradle 根据构建风格交换 jniLibs 资源

    我正在尝试交换一些资源res raw文件夹和jniLibs armeabi文件夹基于是否是release buildType or a debug buildType 我目前也有两种产品口味 build gradle 文件 apply pl
  • 如何在android中创建弯曲的底部边框矩形?

    如何使用 xml 创建具有完美弧形底部的 Android 可绘制对象 如下所示 我已经尝试过这个xml 但结果并不完美
  • 排斥网络边缘的文本

    在绘制网络时 如果节点的标签也能避开网络边缘就好了 例如 在下面的示例中 可以将所有标签移到网络之外 我已经尝试了几个软件包 但到目前为止还没有找到一种简单的方法来做到这一点 有办法吗 下面的例子 library ggraph librar
  • mybatis 生成器“列名模式不能为 NULL 或空”

    我在 eclipse 中使用 MyBatis Generator 这是generatorConfig xml 文件 当我右键单击并选择 生成 MyBatis 工件 时 它会显示错误消息 例如 列名称模式不能为 NULL 或空
  • 数据库连接字符串信息

    在 Net中是否有一个类 您可以在其中获取数据库名称和所有连接字符串信息 而无需在连接字符串上实际执行子字符串 EDIT 我没有创建连接 而是尝试从连接字符串中获取信息 所以我基本上是在寻找需要连接字符串 arg 并具有 dbName 连接
  • 是否有一个本机功能可以将基于字符串的 JSON 转换为 Mongoose Schema 对象实例?

    我正在使用 Express 我正在寻找一种便捷的方法来转换此类对象 应要求提供 req body myObject name Foo someNumber 23 someBoolean on 进入此架构的一个实例 var myObjectS
  • 密码学与散列法

    我的问题很简单 加密将信息隐藏到只有想要查看该信息的人才能真正看到它的程度 您可以加密信息然后解密 如果哈希无法解密 为什么会被视为加密 我说散列被视为加密 因为您将 MD5 称为加密散列函数 正确 散列是一种单向函数 但散列不被视为加密
  • 使用 jquery 检查 HTML5 视频是否正在播放

    我编写了一个小的 jquery 代码来覆盖 HTML 5 播放功能 但是 我无法检查视频是否正在播放 这是我的 jquery 代码 video click function var video myvideo get 0 video pla
  • 如何获取嵌套属性

    我想检索 PropertyInfo 这里是代码 string propertyName Text PropertyInfo pi control GetType GetProperty propertyName 它工作正常 但如果我想检索嵌
  • 如何使用 .shp 将空间多边形应用于传单地图

    我正在尝试使用传单绘制加利福尼亚州各县的地图 我没有收到任何错误 但地图没有产生正确的结果 我找到了一个 shp县线文件位于https data ca gov dataset ca geographic boundaries 我导入了 sh
  • 使用 django-allauth

    我在使用 django allauth 时遇到问题 我收到这个错误 NoReverseMatch 位于 accounts login 找不到参数 和关键字参数 的 facebook channel 的反向操作 到目前为止 我已经严格遵循了一
  • SKScene 中的 UIPanGestureRecognizer

    我一直在尝试UIGestureRecognizers和新的SKScene SKNode s in SpriteKit 我遇到了一个问题 我即将解决它 但我对一件事感到困惑 本质上 我有一个平移手势识别器 允许用户在屏幕上拖动精灵 我遇到的唯
  • Spring 已弃用的 ExpressionEvaluationUtils 评估方法的替代方案?

    自上课以来 org springframework web util ExpressionEvaluationUtils自 Spring 3 x 版本以来已弃用 我正在寻找在我的 java 代码中进行 EL 表达式求值的另一种替代方法 阅读
  • 如何在不为每个函数运行新的浏览器窗口的情况下运行 PHPUnit Selenium 测试?

    我正在尝试使用 PHPUnit 运行硒测试用例 我做的第一件事是尝试登录功能 这很完美 但随后我想运行一个功能来检查登录后页面上的信息 但它会打开一个新浏览器 而不是在当前浏览器窗口中继续 这是一个问题的原因是因为该页面设置为在窗口关闭时删