A
peruser requested proposals on the best way to utilize Selenium's
"Feature" order. Presently by and by don't utilize the feature work.
Never truly have. When we investigate tests, will venture through the content
in Eclipse.
Be
that as it may, by utilizing reflection to naturally create code for a java
class we can run the feature charge preceding executing other Selenium summons,
without altering our current tests. Also, answer the inquiry, "Consider
the possibility that Selenium's Highlight Command was dependably on”.
The Question:-
Have
gotten heaps of extraordinary inquiries from individuals learning Selenium, the
vast majority of these answers included, yet some arrangement with through
private messages and blog entries. For this situation a peruser requested
proposals on the best way to utilize Selenium's "Feature" charge.
The
feature order in Selenium accepts a locator as a parameter and flashes the
control yellow. A little assistant capacity added to help troubleshooting so
you have some sign of what components your content contacts.
Presently
by and by don't utilize the feature work. Never truly have. When we
troubleshoot, venture through the content in Eclipse. If this technique for
investigating doesn't uncover the issue then a high likelihood exists that my
issues identify with a planning issue (venturing through modifies the planning
of the test so here and there you can't uncover the issue that way).
Can
perceive any reason why you should need to feature the locator components being
used at the time and mistake occurs, on the off chance that you take Selenium Training in Bangalore screen
captures naturally when a test comes up short.
The Approach:-
One
simple approach to retrofit the feature summon into your tests includes
expanding the DefaultSelenium class. What's more, as opposed to fabricate this
HighlighterSelenium class by hand, imagined that it would bode well to create
the class naturally
This would have the focal points that:
·
Whatever variant of Selenium I
utilize, the created code will coordinate it
·
Don't need to troubleshoot each
individual message
·
Find it more intriguing to compose
code age code than wrapper code
In
the event that you haven't utilized Reflection in Java at that point will give
a speedy outline. In Java reflection enables us to get to the class
definitions, so as opposed to making a case of a class as a question and
calling strategies on the protest. Can get to the class definition and see what
strategies the class bolsters, get arrangements of the parameters and so forth.
As
a snappy illustration, if need to get every one of the constructors for a class
·
Class<DefaultSelenium>
seleniumClass = DefaultSelenium.class;
·
Constructor[] allConstructors =
seleniumClass.getDeclaredConstructors());
And
afterward can spin through the variety of constructors and show them.
So
to manufacture the code for HighlighterSelenium will essentially imitate the constructors
and techniques on DefaultSelenium, and for every strategy need to feature:
include something like the accompanying as the body of the technique:
highlight(locator);
super.methodName(locator);
e.g.
open
void click(java.lang.String p0){highlight(p0);super.click(p0);}
Won't
physically code it like this, would utilize imports in the class record and
additionally separating and space, however with code age I don't need to stress
excessively considerably over the human tasteful response to the code.
The
Implementation:-
In
the connected source code organizer you will discover a
BuildSeleniumLocatorHighlighter.java class.
This
contains a test which when run, will yield to stdout the code for
HighlighterSelenium, naturally produced from whatever adaptation of the
Selenium shake you have related with the venture.
So
to utilize this, in the event that you to need to encounter "The Day
Selenium Highlight Took Over" (illustration accept you utilize obscure):
·
download the source code document
·
add
BuildSeleniumLocatorHighlighter.java to a task all setup with tests and
Selenium libraries in the construct way
·
run the reflectThroughSelenium test
·
copy the yield from stdout in the
support into another class document "HighlighterSelenium.java"
·
in your tests, rather than making an
occurrence of DefaultSelenium, make an occasion of HighlighterSelenium
·
then run your tests
My Answer:-
Having
done this and run my tests, didn't feel like we got any genuine advantage from
the feature charge. If at any time do need selenium courses in
Bangalore to utilize it at that point will uncover HighlighterSelenium
class as that may help, and in any event implies I don't need to do any coding
work to alter my tests to feature the locators.
In
the event that you take a gander at the created source code you will see that a
portion of the techniques don't have feature code - these either don't utilize
a locator, or the client does not anticipate that it will toss an exemption
when the locator does not discover a component.
The
BuildSeleniumLocatorHighlighter.java class ought to likewise go about as a
decent prologue to reflection.
Tip:
Will
all the time compose little applications and contents like this as
"tests" in Java. Along these lines can run them effortlessly from the
shroud right snap menu. It appears a simple method to get the adhoc scripting
benefits that individuals get from Ruby and Perl.
No comments:
Post a Comment