问题标签 [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 投票
0 回答
697 浏览

php - symfony/panther 是否有可能等待某些元素 n 次?

下面是我的PHP代码,我正在寻找一个自定义回调函数,我需要确保我可以获得超过 5 个具有 css 标识符“ a[data-selenium='neighbor-link']”的元素,并且我将获取 html 内容。

可能吗?谢谢你。

0 投票
0 回答
40 浏览

symfony - BrowserStrack 与 Panther 的 E2E 测试集成

有没有人尝试将 BrowserStack 云解决方案集成到 Panther 中?

我们使用 Panther (Chrome) 对 Github 操作进行 E2E 测试,但我们的大多数客户使用 Internet Explorer :( 所以我们想用 IE 进行测试。

Panther 不允许在本地使用 IE 进行测试,但是在查看文档(https://github.com/symfony/panther#readme)时,它确实提到 Panther“支持远程浏览器测试服务,包括 SauceLabs 和 BrowserStack”,这将允许我们通过 BrowserStack 使用 IE 进行测试。

但是,我在其余文档中看不到任何可以解释如何将它们集成在一起的内容,所以我不确定如何从这里开始。

有人有想法吗?

干杯!

PS:我不知道这是否重要,但我们使用的是 PHP 框架 symfony v4.4

0 投票
1 回答
109 浏览

php - Symfony(4.4) Panther 测试用例在 GitlabCI 上不起作用

我在我的 symfony 项目中使用 Panther Tests Case 和 PHPUnit 进行功能测试。当我在我的计算机(php bin/phpunit)上运行测试时,一切正常。当我连接到服务器并运行测试时,一切正常。Chrome 驱动程序已正确安装在服务器上,我可以使用命令行运行它。但是,当我推送 gitlab 并且我的 CI 启动时,我总是有同样的错误:这是来自 gitlab 界面的屏幕截图 在此处输入图像描述

我的脚本从使用 SSH 连接到我的服务器开始。所以行为应该与我使用 Putty 和 SSH 连接到我的服务器时相同...我在 .gitlab.ci 脚本上使用的命令是 'php bin/phpunit '。我在本地使用的相同。

我发现了一些关于这个问题的帖子,但都在 Selenium 上,而对于 panther 什么都没有……请帮忙!:)

0 投票
0 回答
186 浏览

symfony - 30 秒后无法连接到 chrome(“http://127.0.0.1:9515/status”已超时。)

我在 symfony 中使用 panther从网站上抓取数据检测到我的 chromedriver。但我收到此错误消息“30 秒后无法连接到 chrome(“http://127.0.0.1:9515/status”已达到超时。)。我试图更改端口但没有。

在 CLI 中:“警告:fsockopen():无法连接到 127.0.0.1:9515”

如果有人有想法我很感兴趣!提前致谢 !

我的代码:

“C:\Users\gelinn\Desktop\base-veille\vendor\symfony\panther\src\ProcessManager\WebServerReadinessProbeTrait.php”中的 RuntimeExeption(第 82 行):

0 投票
1 回答
347 浏览

php - Symfony Panther:不能一次运行多个测试

我目前正在为我的 Symfony 项目编写测试,我没有遇到像 WebTestCase 这样的常规测试的任何问题。但是现在我对其中一些使用 Panther,当我尝试一次启动多个 panther 测试时遇到错误。第一个总是正常工作,但下一个会出现奇怪的错误,具体取决于我如何尝试安排它们,我无法找到出口。

这是我的代码,我已将我所有的 panther 测试重新组合在同一个类中。

这两个测试在评论另一个时启动时都非常有效,但是如果它们都“活动”,则只有第一个成功,并且我在当前代码设置中遇到此错误。

第 45 行是这个吗

由于我们的网站使用身份验证,我目前必须使用提交表单方法登录,因为 WebTestCase 可用的 loginUser 不适用于 Panther。

更新1: 正如第一条评论所建议的那样,“会话”可能已经登录。经过一个小测试,他确实是这种情况

这是我新的第二次测试,这个断言有效,表明我仍然被认为是登录的并且可以自由导航。但是现在如果我取消对测试结束的注释,则需要很长时间才能完成(注释代码大约需要 1 分钟,没有注释代码大约需要 2 分钟)

如果没有评论,我会收到以下错误

第 50 行是 sumbitForm() 方法之后的行。

0 投票
0 回答
158 浏览

php - Symfony黑豹问题

我正在使用 Symfony Panther 进行网页抓取。当 Google Chrome 的版本和 Chrome 驱动程序为 89 时,一切正常。但是两个版本都更新到92后,

$crawler->filter('h1')->html();

将始终返回空字符串。

我认为,问题与这种方法有关>html()

如果您对此有解决方案,请告诉我。

0 投票
0 回答
43 浏览

php - PHP WebDriver - JavaScriptError: Document was unloaded

我正在使用带有 Firefox 的 Symfony Panther 来控制和多次提交一个内部的表单<iframe>,其中 iframe 和主文档都具有来自同一个外部主机(比如说 example.org)的 URL。

为此,我使用 awhile检查表单是否可以再次提交。在第一次迭代中,表单已正确提交,但之后我无法再使用对 previous 的引用WebDriver,因为页面已重新加载。

我运行的进程有一个类似这样的代码:

每个 JavaScript 调用都使用 internal document.querySelector,由于文档已卸载,因此似乎无法调用它。

PS:我正在使用 Gecko 驱动程序

0 投票
0 回答
194 浏览

php - 如何在不执行 javascript 的情况下使用 Symfony Panther 滚动到元素?

我想使用 Symfony Panther 滚动到一个元素,但不使用 javascript 方法。

有人知道这样做的方法吗?

javascript方法是这样的:

0 投票
1 回答
81 浏览

php - Symfony Panther 如何选中一个复选框?

我正在尝试使用此代码检查 html 输入复选框,但它不起作用:

复选框:

知道怎么做吗?

0 投票
0 回答
143 浏览

php - 如何在 Panther 测试中模拟服务?

我有一个在提交表单时执行外部 API 调用的网页。我的想法是模拟HttpClientInterface,只要一个完整的 E2E 场景需要一个正在运行的开发服务器来达到这个目的,这在我的情况下并不总是可行的。

这是我到目前为止所尝试的:

services.yaml

我的测试场景:

但它给了我以下错误:Symfony\Component\HttpClient\Exception\InvalidArgumentException: MockResponse instances must be issued by MockHttpClient before processing. 显然它不适用于PantherTestCase(尽管它适用于WebTestCase测试)。

在集成测试期间是否可以以某种方式模拟响应?