danhumphrey / page-modeller Goto Github PK
View Code? Open in Web Editor NEW⚙️ Browser DevTools extension for modelling web pages for automation.
License: MIT License
⚙️ Browser DevTools extension for modelling web pages for automation.
License: MIT License
It would be nice to perform Save action when Enter key is pressed - in Edit Element modal.
For example, the Star or Watch count links on GitHub.
*** Variables ***
${userName} id=login
*** Keywords ***
Set UserName
[Arguments] ${userNameValue}
[Documentation] Set UserName INPUT element value
Input Text ${userName} ${userNameValue}
*** Variables ***
${userNameLocator} id=login
Set UserName
[Arguments] ${userNameValue}
[Documentation] Set UserName INPUT element value
Input Text ${userNameLocator} ${userNameValue}
Let us take an example of below robot test suite which uses the above LoginPage.robot:
*** Settings ***
Resources LoginPage.robot
*** Variables ***
${user_name} user01
*** Test Cases ***
Web Test
Set UserName ${user_name}
Test Outcome Expected:
Robot framework to find element by locater id=login and send keys 'user01'
Test Outcome Actual:
Robot framework is trying to find element by locater user01 instead of id=login and fails in the process.
Possible reason for this behavior
Robot framework takes our test variable ${user_name} and considers it as a named argument and overrides ${userName} in the Set UserName keyword definition. But the interesting thing is Set UserName keyword is supposed to accept only one argument ${userNameValue}.
This is an issue in robot framework itself. I will raise an issue with robot framework.
Just checking if we can add word Locator to all the Locator variable names generated through the Page modeler , that would can add some context to the variable and also muffle this error in robot framework.
Add support for Selenium WebDriver in Ruby
It would completely great if page-modeller supported Python3
The issue is that you cannot view or modify any elements after you reach 10 rows on the locator table. could you make the table show all the elements. captured. however, when I generate the code, I can see the additional elements.
Some profiles will require specific options or preferences.
As an example, the Selenium WebDriver profiles could benefit from a usePageFactory
option.
Angular projects, by default, use typescript for page object classes. Whilst this plugin is excellent and has saved our team time, there is still the manual process of typescriptifying the generated protractor model
See PR #18 for proposed changes
See the Cart link on the etsy website:
Some elements (tbody, thead, tfoot, tr, td etc...) (I need to identify a full list) are intrinsically hidden and their children are not included in the model when scanning.
e.g. The form elements found here:
http://www.executeautomation.com/demosite/index.html?UserName=&Password=&Login=Login
There are two ways to invoke 'Edit Element Dialog'
It would be nice to have two ways to invoke 'View Matched Elements'
Rationale:
It is easier to click / double click the whole row than smaller Icons for people with fat finger.
PS:
I forked the project and made changes locally. Upon invoking build-chrome.js the zip files gets generated but its too tiny 44 bytes. I will troubleshoot and ensure I can contribute in the future.
Codeception is quite popular testing framework for PHP, giving ability to write acceptance and functional tests.
Page objects: https://codeception.com/docs/06-ReusingTestCode#pageobjects
Available locators (probably best to stick to strict ones when generating page object): https://codeception.com/docs/03-AcceptanceTests#click
Page Modeller seems to work on some sites, but not on others. I am trying to automate some testing of this site, but when I press the "Scan Page" icon and hover over the page, nothing gets selected. This is true both in Chrome 84 and Firefox 68. Am I missing something, or is this site just constructed in such a way that it doesn't want to be modeled?
Adding the return type as the Page as per the Selenium Wiki.
https://github.com/SeleniumHQ/selenium/wiki/PageObjects
Consider implementing unobtrusive warnings and replacing alerts such as "That element already exists in the model" with an auto hiding popup message.
These language bindings will be an added value.
( I hope they also can benefit from page object modelling )
Modelling pages with nested frames.
Add support for Playwright framework
I think the issue is at Google's end as I can manually load version 1.5.7 into chrome. The same version also works in Firefox.
I have bumped the version and pushed this to the Chrome extension store but it is still pending review. I will hopefully close this issue when version 1.5.8 is live.
Hi @danhumphrey
We have an automation suite using Protractor framework for AngularJS based web application.
Can we get this extension to generate code for that?
Regards
Add the option to specify an element as the root context.
Very good tool, it would be perfect if we could tell the SPY to look at another unique property instead of the id
<input class="form-control ng-pristine ng-invalid ng-touched" formcontrolname="prenom" type="text" placeholder="Nom" style="null">
elements = document.querySelectorAll('[formcontrolname]:not([id])')
elements.forEach((item, index) => {
value = item.getAttribute('formcontrolname')
item.setAttribute('id', value)
})
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.