问题标签 [symfony-panther]

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.

0 投票
2 回答
644 浏览

webbrowser-control - 如何使用 Symfony 5 + Panther + Webbrowser + Chrome + setValue + Hmtl + Js 设置输入字段值

如何在基本常规控制器中设置而不是从 TestCase 扩展的 TestController,设置为 Web 文本值的输入字段?

0 投票
2 回答
2231 浏览

symfony - 无法启动 Symfony Panther

我第一次尝试使用Symfony Panther(Symfony 5.1,Windows 10,我有 Chrome 和 Firefox),但第一行已经无法正常工作。

使用 Github 文档(基本用法),这是我的错误:

Firefox 的第二次尝试:

第三次尝试使用 Firefox 和二进制:

0 投票
1 回答
75 浏览

selenium-chromedriver - 无法使用 findElements()、filter() 或 selectLink() 定位特定的 HTML 元素

元素截图

我无法弄清楚为什么爬虫无法找到该元素。这是一个简单的元素...

我试过跑步$client->refreshCrawler()

该网站非常重 JS 和 AJAX,所以我想知道如果可能的话,内容是否可能以某种方式在隐藏的 DOM 中?

我在检查 a 标签时注意到有一个事件并且旁边有“DOM2”

这些是我测试过的所有尝试:

但每一个都返回The current node list is empty

0 投票
0 回答
693 浏览

php - Symfony Panther && Docker (Alpine) chrome 不断崩溃

最近我决定检查一下 Symfony Panther HTTP 客户端。我认为将它集成到测试和事物中会很好。

我确实非常仔细地遵循了文档。我已经为 PHP 单元注册了它的扩展。在扩展 Panther 测试用例后,我可以创建一个 Panther 客户端 - 没问题。

当我尝试拨打实际电话时出现问题。比方说:

数组中的这些选项 - 我只是在尝试,我认为它可能会有所帮助。我得到的错误如下:

我确实查看了文档和 SO 以寻求解决方案,但我真的找不到任何可以帮助我的东西。

有谁知道为什么会这样?

这是我的 PHP Dockerfile

0 投票
1 回答
543 浏览

php - Symfony 爬虫在没有 FORM 的 SELECT 列表中选择 OPTION

我正在抓取一个网站,该网站有一个独立的 SELECT,没有 FORM 父级,没有 NAME,只有 ID。

我可以选择它

将打开列表,但是如何按值或名称在列表中选择一个值?

0 投票
0 回答
261 浏览

symfony-panther - 如何在外部网站上使用 Panther 登录?

我使用 symfony/panther 进行网络爬取。要访问我想要的页面,我需要经过身份验证,但我不知道该怎么做。

我努力了 :

但它不起作用,我的用户没有经过身份验证。

我想我需要检索一个 cookie 并将其添加到我的客户端,但我不知道该怎么做。有人可以给我执行此操作的步骤吗?

0 投票
1 回答
511 浏览

php - Symfony 4.4 PHPUnit Panther:Facebook\WebDriver\Exception\SessionNotCreatedException:会话未创建

这是我的测试文件:

当我运行命令时:

这给了我一个错误:

我在 DuckDuckGo 上进行了搜索,但与 Symfony、PHPUnit 甚至 PHP 语言无关。

我倾向于版本问题,这是我的composer.json:

这是我的 phpunit.xml.dist:

如果我按照 symfony/panther 的建议添加该行:

这给了我错误:

但是使用 Symfony\Component\Panther\ServerExtension 它给了我错误:

预先感谢您的帮助。

0 投票
0 回答
399 浏览

php - Symfony & Panther:Panther 不加载 - 无法创建 PantherClient()

我在Symfony 4.4项目中遇到了 Panther 的问题。这个项目已经有了LiipFunctionnalTestBundle,但是为了测试 JS,我想要 Panther。我已经在我的作曲家中安装了 Panther,我可以使用或使用Panther"symfony/panther": "^0.8.0"来扩展我的课程和(根据文档symfony/panther)。但我不确定我的项目是否初始化了 Panther ......如果我做一个简单的测试,比如:PantherTestCasePantherTestCaseTraitLiip

测试时我会收到一条错误消息:

如果我尝试在 Trait 中使用Liipwith WebTestCaseand Panther :它一直在工作,直到我想使用 Panther 的特定断言。然后我的 IDE 说'assertSelectorIsEnabled'NewsControllerPantherTest'. 该方法createPantherClient无法识别,因此即使我尝试将本地主机和端口放入它,它也不起作用......

所以,我认为 Panther 在我的项目中但没有加载?我在一台装有 Mamp、PHP 7.4.1 和 Apache 的 Windows PC 上。

正如文档中所说,我已将标签放在 phpunit.xml.dist 中。

非常感谢您的帮助 =)

0 投票
1 回答
419 浏览

php - 为 Panther 设置一个 ChromeDriver 实例,而不是为每个请求创建一个

我在一个不使用 Symfony 的 PHP 项目中使用 Symfony Panther 进行网页抓取(不是测试)。我通过 Composer 安装。每次我需要抓取用户提交的链接时,我都会启动一个新的 Chrome 浏览器。

为每个提交的文件启动一个新的 Chrome 浏览器$url既慢又占用资源,所以我想让 Chrome 客户端在端口 9515 上运行,然后每个用户的$url请求都可以连接到同一个实例。根据 Github 上的一些用户评论,这听起来是一种合理的方法:

  • 在 Linux 服务器上启动一个 Chrome 实例,在端口 9515 上运行
  • 使每个 url 请求连接到该实例。

我将第一行,即 createChromeClient 放在 CRON 作业的 php 脚本中,但它从未启动 chrome 客户端,我也没有收到任何错误。任何想法如何实现这一目标?

0 投票
2 回答
253 浏览

php - Symfony Panther 中 getInternalResponse 的 getHeader 总是返回一个空数组

通过使用 Symfony Panther,我发送了一个请求,我想得到响应。我能够获得正文和状态代码,但对于标题我只有一个空数组。