问题标签 [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.
php - symfony/panther 是否有可能等待某些元素 n 次?
下面是我的PHP
代码,我正在寻找一个自定义回调函数,我需要确保我可以获得超过 5 个具有 css 标识符“ a[data-selenium='neighbor-link']
”的元素,并且我将获取 html 内容。
可能吗?谢谢你。
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
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 什么都没有……请帮忙!:)
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 行):
php - Symfony Panther:不能一次运行多个测试
我目前正在为我的 Symfony 项目编写测试,我没有遇到像 WebTestCase 这样的常规测试的任何问题。但是现在我对其中一些使用 Panther,当我尝试一次启动多个 panther 测试时遇到错误。第一个总是正常工作,但下一个会出现奇怪的错误,具体取决于我如何尝试安排它们,我无法找到出口。
这是我的代码,我已将我所有的 panther 测试重新组合在同一个类中。
这两个测试在评论另一个时启动时都非常有效,但是如果它们都“活动”,则只有第一个成功,并且我在当前代码设置中遇到此错误。
第 45 行是这个吗
由于我们的网站使用身份验证,我目前必须使用提交表单方法登录,因为 WebTestCase 可用的 loginUser 不适用于 Panther。
更新1: 正如第一条评论所建议的那样,“会话”可能已经登录。经过一个小测试,他确实是这种情况
这是我新的第二次测试,这个断言有效,表明我仍然被认为是登录的并且可以自由导航。但是现在如果我取消对测试结束的注释,则需要很长时间才能完成(注释代码大约需要 1 分钟,没有注释代码大约需要 2 分钟)
如果没有评论,我会收到以下错误
第 50 行是 sumbitForm() 方法之后的行。
php - Symfony黑豹问题
我正在使用 Symfony Panther 进行网页抓取。当 Google Chrome 的版本和 Chrome 驱动程序为 89 时,一切正常。但是两个版本都更新到92后,
$crawler->filter('h1')->html();
将始终返回空字符串。
我认为,问题与这种方法有关>html()
如果您对此有解决方案,请告诉我。
php - PHP WebDriver - JavaScriptError: Document was unloaded
我正在使用带有 Firefox 的 Symfony Panther 来控制和多次提交一个内部的表单<iframe>
,其中 iframe 和主文档都具有来自同一个外部主机(比如说 example.org)的 URL。
为此,我使用 awhile
检查表单是否可以再次提交。在第一次迭代中,表单已正确提交,但之后我无法再使用对 previous 的引用WebDriver
,因为页面已重新加载。
我运行的进程有一个类似这样的代码:
每个 JavaScript 调用都使用 internal document.querySelector
,由于文档已卸载,因此似乎无法调用它。
PS:我正在使用 Gecko 驱动程序
php - 如何在不执行 javascript 的情况下使用 Symfony Panther 滚动到元素?
我想使用 Symfony Panther 滚动到一个元素,但不使用 javascript 方法。
有人知道这样做的方法吗?
javascript方法是这样的:
php - Symfony Panther 如何选中一个复选框?
我正在尝试使用此代码检查 html 输入复选框,但它不起作用:
复选框:
知道怎么做吗?
php - 如何在 Panther 测试中模拟服务?
我有一个在提交表单时执行外部 API 调用的网页。我的想法是模拟HttpClientInterface
,只要一个完整的 E2E 场景需要一个正在运行的开发服务器来达到这个目的,这在我的情况下并不总是可行的。
这是我到目前为止所尝试的:
services.yaml
我的测试场景:
但它给了我以下错误:Symfony\Component\HttpClient\Exception\InvalidArgumentException: MockResponse instances must be issued by MockHttpClient before processing
. 显然它不适用于PantherTestCase
(尽管它适用于WebTestCase
测试)。
在集成测试期间是否可以以某种方式模拟响应?