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

fix for rare failure on some motorola devices #28

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

SyedSaifAli
Copy link

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

…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"));

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?

Copy link
Author

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.

Comment on lines 16 to 19
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();
Copy link

@rchougule rchougule Aug 4, 2021

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);

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?

Copy link
Author

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);

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?

Copy link
Author

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).

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.

4 participants