-
Notifications
You must be signed in to change notification settings - Fork 149
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
fix for rare failure on some motorola devices #28
base: master
Are you sure you want to change the base?
Conversation
…ning rarely for some devices and clicking on i agree to continue with the existing flow
|
||
public class SingleTest extends BrowserStackTestNGTest { | ||
|
||
@Test | ||
public void test() throws Exception { | ||
driver.get("https://www.google.com/ncr"); | ||
try { | ||
WebElement ele = driver.findElement(By.className("IKl7Q")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't these ids are generated by the framework at runtime and can change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, I have updated the code to find the element.
WebElement ele = driver.findElement(By.className("IKl7Q")); | ||
if(ele.isDisplayed()) { | ||
((JavascriptExecutor)driver).executeScript("arguments[0].scrollTo(0, arguments[0].scrollHeight)",ele); | ||
driver.findElement(By.xpath("//*[@id='L2AGLb']/div")).click(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
these classnames and ids might change in the future with their deploys since they are generated for creating unique values from original classnames (to prevent collision)
Will require some other selectors.
} | ||
} | ||
catch(Exception e){ | ||
System.out.print(e); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will this print the actual message or just tell the object type is of exception class?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will print this kind of message
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//div[text()='I agree']"}
WebElement ele = driver.findElement(By.xpath("//div[text()='I agree']")); | ||
if(ele.isDisplayed()){ | ||
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView()", ele); | ||
Thread.sleep(5000); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need this sleep
call? why?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need this sleep
because we are scrolling inside a modal to click on a div named I agree. and scrolling takes its own time for that element to be intractable.
If we do not add a sleep then getting following error while running click()
command.
element click intercepted: Element <div class="jyfHyd" role="none">...</div> is not clickable at point (246, 524).
added try catch block for finding element of modal class which is opening rarely for some devices and clicking on i agree to continue with the existing flow