{"id":13651181,"url":"https://github.com/teodesian/playwright-perl","last_synced_at":"2025-03-21T09:32:16.837Z","repository":{"id":56835647,"uuid":"305780015","full_name":"teodesian/playwright-perl","owner":"teodesian","description":"Perl bindings for playwright","archived":false,"fork":false,"pushed_at":"2024-04-14T00:05:13.000Z","size":424,"stargazers_count":21,"open_issues_count":13,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-04-14T13:12:30.961Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teodesian.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["Troglodyne-Internet-Widgets"]}},"created_at":"2020-10-20T17:11:46.000Z","updated_at":"2024-04-30T21:25:08.549Z","dependencies_parsed_at":"2024-04-14T00:46:11.319Z","dependency_job_id":null,"html_url":"https://github.com/teodesian/playwright-perl","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teodesian%2Fplaywright-perl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teodesian%2Fplaywright-perl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teodesian%2Fplaywright-perl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teodesian%2Fplaywright-perl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teodesian","download_url":"https://codeload.github.com/teodesian/playwright-perl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244772577,"owners_count":20508017,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T02:00:46.139Z","updated_at":"2025-03-21T09:32:16.590Z","avatar_url":"https://github.com/teodesian.png","language":"Perl","funding_links":["https://github.com/sponsors/Troglodyne-Internet-Widgets"],"categories":["Language Support"],"sub_categories":[],"readme":"# playwright-perl [![Build Status](https://travis-ci.org/teodesian/playwright-perl.svg?branch=main)](https://travis-ci.org/teodesian/playwright-perl) [![Coverage Status](https://coveralls.io/repos/github/teodesian/playwright-perl/badge.svg?branch=main)](https://coveralls.io/github/teodesian/playwright-perl?branch=main)\n\nPerl bindings for [playwright][pw], the amazing cross browser testing framework from Microsoft\n\n## Has this ever happened to you?\n\nYou're writing some acceptance test with [Selenium::Remote:Driver][srd], but you figure out selenium is a dead protocol?\nFinally, a solution!\n\n## Here's how it works\n\nA little node webserver written in [express][xp] is spun up which exposes the entire playwright API.\nWe ensure the node deps are installed in a BEGIN block, and then spin up the proxy server.\nYou then use playwright more or less as normal; see the POD in Playwright.pm for more details.\n\nSee [example.pl](https://github.com/teodesian/playwright-perl/blob/main/example.pl) in the toplevel of this project on gitHub for usage examples.\n\n[pw]:https://github.com/microsoft/playwright\n[srd]:https://metacpan.org/pod/Selenium::Remote::Driver\n[xp]:http://expressjs.com/\n\n## Supported Perls\n\nEverything newer than 5.28 is supported.\n\nThings should work on 5.20 or newer, but...\nTests might fail due to Temp file weirdness with Test::MockFile.\n\n## Supported OS\n\nEverything seems to work fine on OSX and Linux.\n\nOn Windows, you will have to approve a UAC prompt to exempt `playwright_server` from being firewalled off.\n\n\n## How2develop\n\nEverything should more or less set itself up automatically, or explode and tell you what to do.\nI assume you know how to get cpanm.\n\nYou might want to use distro packages for some of these:\n\n```\nsudo cpanm Dist::Zilla\ndzil authordeps --missing | sudo cpanm\ndzil listdeps --missing | sudo cpanm\n```\n\nFrom there you'll need nvm to get the latest verison of node working:\n\n    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash\n    source ~/.bashrc\n    nvm install node\n    nvm use node\n\nRunning dzil test should let you know if your kit is good to develop.\n\nActually running stuff will look like this after you generate the API json and modules:\n\n`PATH=\"$(pwd)/bin:$PATH\" perl -Ilib example.pl`\n\n## Dealing with api.json and generating modules\n\nPlaywright doesn't ship their api.json with the distribution on NPM.\nYou have to generate it from their repo.\n\nclone it in a directory that is the same as the one containing this repository.\nthen run `generate_api_json.sh` to get things working such that the build scripts know what to do.\n\nThen run `generate_perl_modules.pl` to get the accessor classes built based off of the spec, and insert the spec JSON into the playwright_server binary.\n\nTo make life simple, you can just run `run_example` in the TLD when debugging.\n\n## Questions?\nHop into the playwright slack, and check out the #playwright-perl channel therein.\nI'm watching that space and should be able to answer your questions.\nhttps://aka.ms/playwright-slack\n\nApparently Microsoft is trying to migrate to Github's built in forums, so I've activated discussions on this project too (see the tab at the top).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteodesian%2Fplaywright-perl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteodesian%2Fplaywright-perl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteodesian%2Fplaywright-perl/lists"}