Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add isActive() command to new Element API #4261

Merged
merged 9 commits into from
Nov 9, 2024

Conversation

dikwickley
Copy link
Contributor

@dikwickley dikwickley commented Sep 1, 2024

This PR adds a new isActive() command to the new Element API
Fixes: dikwickley/gsoc24#6

Thanks in advance for your contribution. Please follow the below steps in submitting a pull request, as it will help us with reviewing it quicker.

  • Before marking your PR for review, please test and verify your changes by making appropriate modifications to any of the Nightwatch example tests (present in examples/tests directory of the project) and running them. ecosia.js and duckDuckGo.js are good examples to work with.
  • Create a new branch from master (e.g. features/my-new-feature or issue/123-my-bugfix);
  • If you're fixing a bug also create an issue if one doesn't exist yet;
  • If it's a new feature explain why do you think it's necessary. Please check with the maintainers beforehand to make sure it is something that we will accept. Usually we only accept new features if we feel that they will benefit the entire community;
  • Please avoid sending PRs which contain drastic or low level changes. If you are certain that the changes are needed, please discuss them beforehand and indicate what the impact will be;
  • If your change is based on existing functionality please consider refactoring first. Pull requests that duplicate code will most likely be ignored;
  • Do not include changes that are not related to the issue at hand;
  • Follow the same coding style with regards to spaces, semicolons, variable naming etc.;
  • Always add unit tests - PRs without tests are most of the times ignored.

Copy link

github-actions bot commented Sep 1, 2024

Status

  • ✅ Type files updated!

@dikwickley dikwickley changed the title Add additional commands for new Element API stash Add additional commands for new Element API Sep 1, 2024
@dikwickley dikwickley requested a review from garg3133 October 17, 2024 08:52
Comment on lines 522 to 525
const isActive = await this.driver.executeScript(`
const el = arguments[0];
return el === document.activeElement;
`, element);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we use this endpoint to get the active element?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this actually returns the active element, so we won't be able to get the element here to check if the element is that element only.

Copy link
Member

@garg3133 garg3133 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add just a few basic tests here, similar to done in other commands?

@dikwickley
Copy link
Contributor Author

@garg3133 added some tests.

@dikwickley dikwickley requested a review from garg3133 October 19, 2024 16:43
@garg3133
Copy link
Member

@dikwickley I just found out that we in fact already have the implementations for the computedrole and computedlabel under the command names of getAriaRole and getAccessibleName. So, instead of creating a new command for these two, we just need to add aliases in the existing commands (along with added test cases in the existing test files and types).

Also, for the isActive command, it would be better to use the endpoint itself (following the standards). I see a method already present in the method-mappings file for getting the active element, we could use that method inside the isElementActive method to get the element id of the currently active element and then compare it with the id of the element passed. Also, the isActive command would also require some basic tests.

@garg3133
Copy link
Member

@dikwickley Any updates here?

@dikwickley
Copy link
Contributor Author

dikwickley commented Oct 28, 2024

@garg3133 i will add the new aliases and will send in the code for isActive soon.

@garg3133 garg3133 changed the title Add additional commands for new Element API Add isActive() command to new Element API Nov 9, 2024
@garg3133 garg3133 merged commit 0cf0f58 into nightwatchjs:main Nov 9, 2024
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Adding New commands
2 participants