所选节点没有表单祖先 - Mink 错误

2023-12-29

我正在尝试使用 Mink 和 Goutte 驱动程序对我的 Magento 安装进行测试,当我尝试使用时失败click() or press()按钮上的功能。

Code:

$page = $this->getSession()->getPage();
    $checkout = $page->find('css', '.btn-proceed-checkout');
    $checkout->click();

如何获得这份工作?为什么 Mink 实际上需要一个表单来单击按钮元素?或者问题与 Goutte 无法获取 JS 有关?


TL;DR:使用不同的驱动程序或确保表单元素实际上位于表单内。

Goutte 驱动程序非常棒,但不如真正的浏览器那么好。它获取响应内容并使用Gouttescraper来分析它。为了给您的测试增添一些趣味,它允许您通过拦截值设置调用并将表单数据存储在对象中来输入和提交表单数据。当你点击一个按钮时(我假设只在type="submit")将表单数据添加到请求数据中并发送给服务器。

为了创建该表单对象,它会搜索最接近的父表单以获取基本表单详细信息。因此,当您尝试在不属于表单的输入上设置一个值,或者在没有表单的情况下进行提交时,它无法找到表单并引发异常。

确保表单元素位于表单标记内应该可以解决此类问题。或者,您可以使用 Selenium2 驱动程序 - 它使用完全不同的机制。

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

所选节点没有表单祖先 - Mink 错误 的相关文章

  • PHP 类似数组的对象

    我需要能够像这样设置我的对象 obj gt foo bar 然后我需要将它用作数组 如下所示 if obj foo bar more code here 只需添加implements ArrayAccess到您的类并添加所需的方法 公共函数
  • Web 服务器和 servlet 容器之间的区别

    Web 服务器 和 Servlet 容器 有什么区别 一般来说 所有 Web 服务器也是 Servlet Web 容器 反之亦然吗 我一直在使用 Apache Tomcat for JSP 和 Apache for PHP 但无法弄清楚这两
  • UTF-8、PHP 和 XML Mysql

    我在解决这个问题时遇到了很大的问题 我有一个编码 latin1 swedish ci 的 mysql 数据库和一个存储名称和地址的表 我正在尝试输出 UTF 8 XML 文件 但在使用以下字符串时遇到问题 Otiv gen它被输出为Otiv
  • 电子邮件文件使用php邮件功能发送电子邮件两次

    我的三个问题 尝试了不同的组合 但没有结果 用谷歌搜索 但几乎没有帮助 我收到了两次电子邮件 更改 email protected cdn cgi l email protection到电子邮件 ID 以查看结果 在执行此文件时 我正在获取
  • php同时上传最大文件数

    我正在使用标签 用于使用 php 上传多个文件 我注意到 如果我选择超过 20 个文件 php 只会上传前 20 个文件 有没有办法扩大这个限制 这个限制被添加到PHP 5 2 12 https www php net releases 5
  • 在 PHP cURL 中设置 FTP 模式

    我有一些代码使用 PHP cURL 库通过 FTP 上传一些文件 我被告知将 FTP 模式从被动切换为主动 但我找不到如何做到这一点 相关文档中似乎没有选项 我实际上不确定它当前使用的是什么模式 或者我如何查看它 这个问题的答案是使用 cu
  • 使用 Laravel 返回一对多 Eloquent 关系中的最后一条记录

    假设存在一个One To Many关系 其中用户有许多工作 以及最后一条记录job表是用户当前的作业 让用户返回上一份工作的更好方法是什么 这是我尝试过的 User Class public function ejob return thi
  • 如何将UTF-8编码的汉字从MySql正确导出到SQL

    过去三天我们正在与严重的问题作斗争 我们从PhpmyAdmin导出MySql数据库文件 数据库条目中写入的数据是带有UTF 8字符集的中文 导出后将其转换为拉丁字符集 现在我们正在将此数据库SQl文件导入到其他主机 我们在UTF 8和排序规
  • 如何按年和月对 WordPress 帖子进行分组?

    我正在尝试创建一个带有后查询并在输出中具有以下结构的函数 2021 January 1 Post Title 2 Post Title March 3 Post Title 2020 May 4 Post Title 这是我到目前为止所做的
  • 如何自定义 Magento 主题并保留其源代码

    运行 Magento 1 7 0 2 最新 我下载了一个免费主题并安装了它 没问题 我希望开始对其进行细微的编辑 但我不想触及源代码 我想在一个目录中进行编辑 在该目录中它们将渲染并覆盖基本自定义主题 但如果我要在发布新版本时升级免费主题
  • 导出具有高质量图像的画布的最佳实践是什么?

    我需要你的帮助 我解释一下我的情况 我正在使用 Fabric js 库在我的应用程序中放置形状 文本等 我的画布尺寸为 1000x1000 像素 约 26 45x26 45 厘米 我有一个图像上传脚本 仅用于上传高质量图像 例如 300 d
  • Laravel 9.x 登录应用程序时目标类不存在错误

    尝试为管理面板制作一个登录应用程序以轻松编辑网站的其余部分 我有一个名为AuthController它执行多种操作 例如登录 注销 我决定只使用一个 而不是使用两个不同的控制器 当我去 login在我的浏览器上它返回Target class
  • 每 n 个字符后插入连字符,末尾不添加连字符

    我在用着chunk split 每第四个字母后添加一个 但它也会在字符串末尾添加一个 这是我不想要的 代码如下 function GenerateKey input generated strtoupper md5 input uniqid
  • PHP 中的 __DIR__ 和 dirname(__FILE__) 有什么区别吗?

    对我来说看起来是一样的 但我不确定 因为有很多项目使用dirname FILE 他们的结果是完全一样的 所以 这没有什么区别 例如 以下两行 var dump dirname FILE var dump DIR 两者都会给出相同的输出 st
  • Laravel 上的图像更新并删除旧图像

    尝试在我的更新控制器中实现更新文章似乎可行 但问题是当我只想更新帖子而不上传图像时 旧的总是会被删除 但这是不应该的 这是我的商店功能 public function store Post post post gt update this
  • Doctrine QueryBuilder 重用部件

    我想计算所有符合我的条件的字段 并使用学说查询生成器逐页获取它们 我生成的查询取决于我的过滤器字段 第一部分是计算记录 以便我可以计算页数 qb em gt createQueryBuilder qb gt select COUNT m i
  • 在 Bluemix 中激活 PHP 扩展

    这纯粹是 Bluemix 问题 我的代码在本地主机上顺利运行 但是当我将其迁移到 Bluemix 时 我的数据库连接失败了 检查日志 我发现问题 调用未定义的函数 mysqli init HTTP 响应 500 我发现扩展已被禁用以使其更小
  • Laravel Eloquent with()-> 返回 null

    我正在尝试使用 Eloquent 来获取具有以下功能的特定产品 brand id映射到a的列brands表 该brand数组返回空 这里有什么明显需要改变的地方吗 product Product with images gt with br
  • 学说 - 获取下一个和上一个记录

    这样我就已经获取了一些记录 我已创建日期字段 现在我想按日期获取下一条和上一条记录 通过以下方式让它工作 qb this gt createQueryBuilder a next qb gt expr gt gt a created dat
  • 使用 htaccess 文件重定向[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 Edit 我想重定向一个网址 to www example com location sydney from www example com rss

随机推荐

  • 未设置 JavaScript Cookie

    我遵循了一些相关的主题 并且还遵循了教程http www quirksmode org js cookies html http www quirksmode org js cookies html但我无法设置我的cookie
  • Java 内部 LinkedList 是如何工作的?

    据我所知 链表的概念是一堆相互连接的对象 通过具有 下一个 有时是 上一个 属性来遍历对象 我注意到在 Java 中 您可以创建一个 LinkedList 对象 但通过使用相同的方法 如 add get 等 将其视为数组 列表 序列 那么
  • 如何检查列表理解中的对象是否不是 None?

    我对 Python 中的列表理解有些熟悉 但在我需要检查列表是否不是 None 的情况下 列表理解将会失败 e g tags v tags if tags for t in tags if t Key Name Do something 现
  • 在ContinueWith()块中使用await

    我有以下代码 var result MessageBoxHelper MsgBox ShowAsync Press Yes to proceed MessageBoxButton YesNo ContinueWith answer gt i
  • 在 VSCode 中调试 Angular 应用程序不再起作用

    我按照官方文档进行操作 https code visualstudio com docs nodejs angular tutorial debugging angular https code visualstudio com docs
  • [WPF]如何在画布上绘制网格?

    如何在继承自 Canvas 系统 ui 元素的自定义画布上绘制以下图表作为背景 感谢您提供任何有用的链接 你只需设置Canvas Background对某些人DrawingBrush 这个画笔只需要渲染一个矩形 通过使用一些Rectangl
  • Django 的双下划线

    在 Django 中 您可以进行如下数据库查询 Model objects filter name icontains bob 问题是 这在 幕后 是如何运作的 双下划线是 Django 的东西还是 Python 的东西 这只是一个名为na
  • 在 Laravel 5.5 中,当我们将作业调度到作业队列后,如何获取作业 ID?

    直到 Laravel 5 4 为止 dispatch 方法返回队列作业 ID job new JobClass gt onQueue queuename jobId dispatch job dd jobId prints the job
  • 将curl查询转换为请求

    我试图在以下位置使用文档 https pairbulkdata uspto gov api documentation https pairbulkdata uspto gov api documentation 但是 当我尝试这些查询时
  • 使用 Polymer 在同一 Web 组件的实例之间进行通信的最佳方式?

    我正在尝试在同一元素的实例之间同步一些 Web 组件属性 因此如果其中一个属性发生更改 则相同的属性将在具有相应绑定和事件的所有实例中更新 Note 我想使用聚合物数据系统概念 https www polymer project org 1
  • 在后台检查电池电量?

    当我们的应用程序处于后台时 是否可以快速检查电池电量 目前我正在开发一款 iOS 应用程序 当电池电量达到 30 时 用户会收到系统通知 我尝试了一下 收到的通知是随机的 有时是 4 有时是 10 比以往任何时候都高出 30 func ap
  • 构建过程中的病毒扫描

    我想将病毒扫描合并到 Java Maven Hudson 构建过程中 不幸的是 我找不到任何有关此类构建步骤的专用工具的资源 我的构建环境是基于Linux的 我的问题是 如何将防病毒扫描合并到基于 Maven 和 Hudson 的构建过程中
  • Python dict.get() 或 None 场景 [重复]

    这个问题在这里已经有答案了 我正在尝试根据我拥有的键列表访问字典的值 如果密钥不存在 我默认为 无 但是 当该值为空字符串 时 我遇到了麻烦 请参阅下面的代码以获取我的示例 dict dict key test dict get key p
  • 如何将我的浏览器上播放的实时视频流式传输到另一个用户的浏览器?

    我正在尝试使用 WebRTC 和 HTML 5 来实现这一目标 我对 WebRTC 很陌生 所以为了完成任务我尝试使用getUserMedia作为显示我的浏览器正在播放的视频的示例 作为一个实验 现在 播放视频和该视频的实时流位于同一个 h
  • Node.js 使用 xml2js 从生成的 XML 中删除根节点

    我正在尝试从 JSON obj 创建一个 XML 它在结果中给我根元素 我尝试设置显式根 var parser xml2js Parser explicitRoot false 为 false 但它不会删除默认根标记 而只是删除我的原始 X
  • 类路径中缺少符号“type .scalacheck.Shrink”

    我使用 Mockito 进行了以下 ScalaCheck 单元测试 import org scalatest mockito MockitoSugar import org mockito Mockito when import org s
  • 我们还需要子程序吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • CUDA - nvidia 驱动程序在运行时崩溃

    我在 CUDA 中运行一个具有 N 次反弹的光线追踪器 每条光线将反弹 N 次 我使用 openGL 查看结果 一旦 N 很小 1 4 一切都会很好 一旦我使 N 个大 10 每个线程 大约 800x1000 必须执行大量计算 当屏幕变黑然
  • Python:使用.Cer文件打开获取公钥然后进行验证

    我有一个包含公钥的 cer 文件 我需要使用这个文件来验证相应私钥签名的签名 我有签名和公钥 我需要验证签名 我得到的结果是假的 下面是代码 def verify sign public key loc signature data Ver
  • 所选节点没有表单祖先 - Mink 错误

    我正在尝试使用 Mink 和 Goutte 驱动程序对我的 Magento 安装进行测试 当我尝试使用时失败click or press 按钮上的功能 Code page this gt getSession gt getPage chec