{"id":29177742,"url":"https://github.com/totvs/oe-test-agent","last_synced_at":"2026-03-10T02:02:21.829Z","repository":{"id":33089166,"uuid":"143049953","full_name":"totvs/oe-test-agent","owner":"totvs","description":"An e2e tool for Progress OpenEdge applications with Protractor","archived":false,"fork":false,"pushed_at":"2022-12-09T01:45:10.000Z","size":7955,"stargazers_count":4,"open_issues_count":12,"forks_count":5,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-08-11T00:28:25.646Z","etag":null,"topics":["e2e","openedge","openedge-abl","protractor"],"latest_commit_sha":null,"homepage":"","language":"OpenEdge ABL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/totvs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-31T18:06:51.000Z","updated_at":"2023-12-20T17:46:14.000Z","dependencies_parsed_at":"2023-01-14T23:30:18.762Z","dependency_job_id":null,"html_url":"https://github.com/totvs/oe-test-agent","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/totvs/oe-test-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totvs%2Foe-test-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totvs%2Foe-test-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totvs%2Foe-test-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totvs%2Foe-test-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/totvs","download_url":"https://codeload.github.com/totvs/oe-test-agent/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totvs%2Foe-test-agent/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263013730,"owners_count":23399814,"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":["e2e","openedge","openedge-abl","protractor"],"created_at":"2025-07-01T18:07:56.428Z","updated_at":"2026-03-10T02:02:16.783Z","avatar_url":"https://github.com/totvs.png","language":"OpenEdge ABL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OE Test Agent\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/totvs/oe-test-agent/master/resources/oe_test_agent_logo.png\" width=\"500\" height=\"200\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  An e2e tool for \u003cstrong\u003eProgress OpenEdge\u003c/strong\u003e applications with \u003cstrong\u003eProtractor\u003c/strong\u003e\n\u003c/p\u003e\n\n## Quick start\n\nThe **OE Test Agent** was developed in order to make our e2e test for OpenEdge applications easier.\n\nOur dev team was already familiar with [**Protractor**](https://www.protractortest.org), so we took advantage of that to create this project using only _socket_ communication between JavaScript and OE and an external tool - also created by us - called [\"Robot\"](#robotexe).\n\nIn other words, the **OE Test Agent** acts as a web driver of Protractor, allowing it to interact with OpenEdge applications as a user would. We also built a set of [TypeScript](https://www.typescriptlang.org) libraries for helping developers to manipulate widgets, properties and events of OpenEdge applications, so that you can easily write tests in a traditional behavior-driven development style.\n\n## Installation\n\n```bash\nnpm i oe-test-agent\n```\n\n## Changelog\n\n### **1.1.13**\n\n- Solved a bug when using `select` to a value of a `COMBO-BOX` with `LIST-ITEM-PAIRS`.\n\n### **1.1.7**\n\n- Solved a bug when using `select` to a value of a `RADIO-SET` widget.\n\n### **1.1.6**\n\n- Solved a bug when using `select` to an invalid value.\n\n### **1.1.5**\n\n- Solved a bug when running an OE application without having the source (`.p`)\n  in the PROPATH.\n- Solved a bug when taking a screenshot of a window.\n\n### **1.1.4**\n\n- The method `takeScreenshot` was changed to return the image filenames.\n- Created the method `takeScreenshotFromProcess` to take a screenshot from each\n  window of a process.\n\n### **1.1.3**\n\n- Now it's possible to send a string value at `windowSendKeys` method.\n- **Brazilian Portuguese** titles are now supported at `alertClick` methods.\n- Now it's possible to send more than one title to `Robot` find a window -\n  delimited by | characters.\n- Created the method `takeScreenshot` to take an OS screenshot and return the\n  `Base64` value from the image.\n- Now it's possible to update the default timeout value.\n\n### **1.1.2**\n\n- Solved a bud when using `select` method with a `SELECT` widget.\n\n### **1.1.1**, **1.1.0**:\n\n#### **BREAKING CHANGES**\n\n- The `delete` method was redefined to expect a where clause and not an object anymore\n- The returns was changed to return only a `Promise\u003cboolean\u003e`\n\n### **1.0.11**:\n\n- Solved a bug when enabling coverage\n\n### **1.0.7**, **1.0.8**, **1.0.9**, **1.0.10**:\n\n- Solved a bug on the socket communication\n- Removed unused dependencies\n\n### **1.0.6**:\n\n- Solved a bug where OEElement `isElementValid` method was always returning true\n- Improvements made at `waitForWindow` and `waitForElement` methods\n\n### **1.0.5**:\n\n- Socket communication improvements\n- Created a method to return if an `OEElement` is valid or not\n- Created an `OEAgent` singleton instance to use at e2e that uses Page Objects\n\n### **1.0.4**:\n\n- Removed unused dependency\n- Created `Keys` enum - to use with `windowSendKeys`\n- Created static attribute DEFAULT_TIMEOUT - to use with `waitFor` methods\n- `ENTRY` event is now fired when using `select` and `check`\n\n### **1.0.3**:\n\n- Solved a bug when searching for elements using `waitForElement` or `findElement`\n- When executing `selectRow` for a empty BROWSE, no errors will be throw\n- Improvements on the socket communication\n- Changed return type to JavaScript's `Promise` instead of Protractor's `promise.Promise`\n- Included console messages when using \"Robot\"\n- Will set profiler's file only if none was defined\n\n### **1.0.2**:\n\n- README.md changes\n\n### **1.0.1**:\n\n- Documentation\n\n## Want to help?\n\nYou're welcome to open an issue to report bugs, suggest improvements on this GitHub or to submit a PR.\n\n## Other tools\n\nIn order to make this project work with all kinds of Progress OpenEdge applications, besides the _socket_ communication, we had to build an auxiliary tool that we decided to call \"Robot\".\n\n### Robot.exe\n\nIf you are familiar with Progress OE applications, you probably know that visual messages - with `VIEW-AS ALERT-BOX` attributes - block every other execution until the user closes the current message.\n\nTo solve that, we created \"Robot.exe\". This tool - built using [\"Auto It\"](https://www.autoitscript.com) - simulates a mouse click to the opened message and can also send keyboard events to any other Windows application that is currently open.\n\n\u003e **Heads up!** You may need to sign \"Robot.exe\" with a valid certificate or add it to your antivirus whitelist.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftotvs%2Foe-test-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftotvs%2Foe-test-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftotvs%2Foe-test-agent/lists"}