This question was asked in an interview that I found interesting.
Here you go.
I know, There are other ways to do it better.
Map<Character, Character> exprssionMap = new HashMap<>();
exprssionMap.put('{', '}');
exprssionMap.put('[', ']');
exprssionMap.put('(', ')');
String inputExpression = "{[({{)}}]}";
int expressionLengh = inputExpression.length();
if (expressionLengh % 2 == 1) {
System.out.println("malformed Expression; Size of the Expression is not even number");
} else {
for (int i = 0; i < expressionLengh / 2; i++) {
if (!exprssionMap.get(inputExpression.charAt(i))
.equals(inputExpression.charAt(expressionLengh - 1 - i))) {
System.out.println(
"Matching expression not found for: " + inputExpression.charAt(i) + "; index:" + i);
}
}
}
Happy Coding.
Showing posts with label questions. Show all posts
Showing posts with label questions. Show all posts
Wednesday, 25 April 2018
Monday, 18 April 2016
Selenium Question
-
Assume, given web application contains 10 dynamic
text boxes.
-
Text box placing/location will also changes
dynamically.
-
Now we need to key in text in one specific text
box, which does not contain any unique locator ( We are not able to find out
uniqueness with partial text too )
How you do you
achieve this?
Analysis:
-
No unique ID , tool tip, value, css style, etc.
-
We are not able to draw unique ness with partial
ID / text / value / etc
Tip:
-
Only one control is having unique ID and whose
position is dynamic.
Idea:
-
Can we use below Xpath selectors
AxisName
|
Result
|
ancestor
|
Selects
all ancestors (parent, grandparent, etc.) of the current node
|
ancestor-or-self
|
Selects
all ancestors (parent, grandparent, etc.) of the current node and the current
node itself
|
attribute
|
Selects
all attributes of the current node
|
child
|
Selects
all children of the current node
|
descendant
|
Selects
all descendants (children, grandchildren, etc.) of the current node
|
descendant-or-self
|
Selects
all descendants (children, grandchildren, etc.) of the current node and the
current node itself
|
following
|
Selects
everything in the document after the closing tag of the current node
|
following-sibling
|
Selects
all siblings after the current node
|
namespace
|
Selects
all namespace nodes of the current node
|
parent
|
Selects
the parent of the current node
|
preceding
|
Selects
all nodes that appear before the current node in the document, except
ancestors, attribute nodes and namespace nodes
|
preceding-sibling
|
Selects
all siblings before the current node
|
self
|
Selects
the current node
|
Examples:
Example
|
Result
|
child::book
|
Selects
all book nodes that are children of the current node
|
attribute::lang
|
Selects
the lang attribute of the current node
|
child::*
|
Selects
all element children of the current node
|
attribute::*
|
Selects
all attributes of the current node
|
child::text()
|
Selects
all text node children of the current node
|
child::node()
|
Selects
all children of the current node
|
descendant::book
|
Selects
all book descendants of the current node
|
ancestor::book
|
Selects
all book ancestors of the current node
|
ancestor-or-self::book
|
Selects
all book ancestors of the current node - and the current as well if it is a
book node
|
child::*/child::price
|
Selects
all price grandchildren of the current node
|
Examples:
//td[text() = ' Color Digest
']/following-sibling::td[2]
//h2[contains(text(),'Hello')]/parent::div//div[//a[text()='SELENIUM']]/following-sibling::div[@class='rt-grid-2']
Subscribe to:
Posts (Atom)