问题标签 [domcrawler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony - 表单测试:如何将集合提交到现有表单?
我使用两种方法来测试我的表单:
通过使用$form = …->form();
然后设置$form
数组的值(更准确地说,这是一个\Symfony\Component\DomCrawler\Form
对象):
文档中的完整示例:
通过直接发送POST
数据:
前面的代码不适用于管理集合的表单(依赖于 Javascript 创建的字段),因为如果该字段不存在,它会引发错误。这就是为什么我也使用这种其他方式。
文档中的完整示例:
这个解决方案是我知道的唯一方法来测试管理带有由 Javascript 添加的字段的集合的表单(请参阅上面的文档链接)。但是第二种解决方案更难使用,因为:
- 它不检查存在哪些字段,当我必须提交包含现有字段的表单时,这是不切实际
and
的 - 它需要
_token
手动添加表单
我的问题
是否可以使用第一种方法的语法来定义现有字段,然后使用第二种语法添加新的动态创建的字段?
换句话说,我想要这样的东西:
但我得到这个错误:
无法访问的字段“名称”
并$form->get('name')->setData('Fabien');
触发相同的错误。
这个例子并不完美,因为表单没有集合,但足以向您展示我的问题。
当我向现有表单添加一些字段时,我正在寻找一种避免这种验证的方法。
symfony - 通过 Symfony Crawler 获取第一级 dom 元素
我正在使用 Symfony Crawler 组件来解析 html,如下所示:
值 1 2 3 4 可能会有所不同,甚至不存在于空 div 中,但 div 也可能包含 subDivs 等。我陷入了选择第一级 div 来处理它们的阶段。Xpath 请求返回我一级 div 和细分
返回
Xpath 请求应该如何防止处理子元素?
UPD:
实际麻烦的DOM方案
此 DOM 树应由一级 div 处理,并根据<a>
标签的存在进行一些逻辑。
html - 使用 Symfony DOM Crawler 从 HTML 标签中提取文本值的最有效/最好的方法是什么?
给定以下 HTML 代码片段:
我正在寻找使用 Symfony 的 Crawler 提取字符串“大”的最佳方法。
在这里我可以使用$crawler->html()
然后应用正则表达式搜索。有更好的解决方案吗?或者你会怎么做?
php - 无法选择链接
我正在尝试抓取每个 .row 的 href。最终,我也想点击链接并访问它链接的 DOM,但我无法获得 Link 对象或 href 属性。
不确定 a 属性中没有任何文本这一事实是否是一个问题,但这就是我必须使用的 DOM。
帮助?
symfony - Symfony DomCrawler 获取 html 文件中的所有 div 元素
我想获取 html 文件中的所有元素。
这样做我总是取第一个 div 元素:如何取所有 div 元素并添加到数组中?谢谢
symfony - symfony 2 domCrawler 如何获取所有子元素
也许这是一个愚蠢的问题,但我需要从选定的 html 页面中获取一个包含所有 HTML 节点的对象。我必须使所有节点都可选择,尤其是开始标签。如果有人知道TYPO3 TemplaVoila的模板引擎;我认为这最适合它,但我想自己重建它,但我不知道如何将所有打开的标签变成一个对象。
如果有人可以推送一些详细信息,实际上,我正在像这样使用 domCrawler 进行测试,但这有点令人困惑......
因此,经过一番研究,我取消了 HTMLPageDom 并像这样使用它:
所以这或多或少有效,但我认为我错过了一些东西。如何将数据附加到 $node->attr('href)?和:
php - DOMCrawler:如何选择“a”标签和“area”标签中的所有链接
我想获取页面上所有链接的列表。其中一些链接位于area
标签中。
所以我这样做是为了获得所有链接的完整列表:
有没有办法直接在方法中选择标签和标签中的filter
所有链接,所以我没有使用该功能?a
area
array_merge
php - 调用未定义的方法 Symfony\Component\DomCrawler\Crawler::rewind()
我正在使用Yii2 DynamicForms 扩展 来创建没有问题的动态字段,但是今天当我运行 composer update 我收到以下错误:
Call to undefined method Symfony\Component\DomCrawler\Crawler::rewind()
错误指向第 201 行/vendor/wbraganca/yii2-dynamicform/DynamicFormWidget.php
:
此方法已从 DomCrawler 中删除?
如何解决这个问题?
jquery - css不选择子元素
可以说我有如下的html:
如何在This is a test
没有 的情况下过滤文本small
?
编辑:我将它与 symfony Dom Crawler 一起使用。
所以我有filter(a. h3 search-result-title);
但我不想要元素的内容small
。
symfony - DomCrawler 选择表单中的所有输入标签
我有一个网页,我正在从(或至少尝试)抓取表单字段。我正在使用Symfony2
(and Goutte
) 来执行此操作,所以我有一个$crawler
对象。这是下面的 html 示例:
如您所见,有很多嵌套内容。我的兴趣只是<input>
标签内的<form></form>
标签。
我正在尝试类似的事情:
但它似乎并没有得到所有(并且只有)输入标签。我做了一个->count()
,当有更多的 50-100 个输入标签时,我只得到 8 作为数字。
谁能帮我得到正确的查询来做到这一点?
此外,一旦我有兴趣删除特定的输入。Dom 中是否有一种方法Crawler
可以让我这样做?我环顾了很多地方,找不到太多。也许如果我做一个反向过滤系统?
谢谢你的帮助!