Simple ways to approach a complex matter! Well done Naveen. I worked on a past project where all of the latest technology was incorporated..NOTHING worked!!
Hi Naveen, hats off to your web table explanation. I have seen so many courses but the web table concept is not so clear. After watching this video, I am so happy that now I am very much clear in web table handling. Thank you so much. Keep it up.
Hi Naveen, Thanks for your wonderful videos which really help a person to think about automation. Your explanation are superb which help people to understand any things about Java or selenium very easily.....Thanks bro for nice work which you do for people.....god bless you always
Hi Naveen, appreciate all your tutorials, full of knowledge as always, I wanted to share my interview experience, I recently attended an interview, they asked me this tricky question and I could not give the exact solution hope you can help me with this : "We have a big web table in our webpage consisting of lots of rows which are visible only by scrolling down vertical scroller in that table (not webpage scroller) each row is defined as separate table tag in html, how do i get to view the last row in that big table and print text from it?" My answer was we can use javascript executor and call scrollintoview method, but he said it works only at page level not for scrolling table inside the webpage. Appreciate your comments...
Hi Naveen In one of my recent interview the question was what if the table dynamically changes it’s columns like if new columns are added and referring to data in that column I need to select the checkbox Could you help me with logic for these, I don’t want to change the XPath though new columns are getting added
It was really amazing ...I have one question sir....Where did you learn all this?? I want to do this all by myself but i cannot think like you sir..I want to do that without taking reference from other codes....I just want to make my own code with my own logic...What should i do for that??? Can you please help me out??
Hi Sir, I have a small doubt, When you are writing customized XPath you are using a single slash in front of the parent element may I know the reason? When I am using a single slash in front of preceding elements also it's working fine but you are using double slash there! Thank You!
Hi Naveen, explained very well.. it could be better if you would have explained how you can pass the td or anchor value dynamically to that xpath by creating some method. And some more explanation when user wants to verify a perticular row values or column vlaues..
line no 48: the range of for loop is from 4 to 7. If we are truely considering the dynamic scenario then we will face issue again. Suppose next time we visit the page then 50 rows appear in the table then i think Method 1 will not be suitable. Although I am very clear with method 2 approach but Naveen is there any way to overcome challenge of method 1?? Posted on: 13March 2022
Hi naveen , I am not able to locate the contacts button because I am not able to find the frame in the CRM website example that you have used. Can you please help me out how can we find the frame within the new CRM webpage ?
Hi Sir, Can I know how to write xpath for a checkbox based on its two preceding siblings. In your example only, if I want to write xpath for checkbox based on both Name and Company, how can we write? please explain.
Hi Naveen, I am trying to use this logic of webtable in POM but i am getting "Cannot invoke "com.hrm.qa.pages.Recruitment.clickOnCheckBox()" because "this.recruitment" is null" error, I am not getting what will be the return when I click in checkbox. Can u pls help me ?
Hi, why there is a single / before parent and // before preceding-sibling. What is the difference . Why can’t we use // before parent axes. Thanks in advance
it's very good session Naveen thanks but am requesting you to do one video for ancestor,descendant,following siblings and how to identified row all elements(all columns in a row) using only one xpath ?
Hi Naveen, This Video is really useful for me... But could you please explain one or more scenarios for dynamic web Table with different XPath axes methods..
Hi Naveen, One more question. What if there is no Scrolling down option available but instead developers have provided the pagination option like - Previous, 1,2,3... Next, etc. with each page holding 10 records. And if the element that we are looking for appears on the 5th page. Fortunately, in one of my projects, developers have provided the pagination option and have also given a Search textbox above the table using which we can search the record directly and then interact with it. This has made my life easier. But what if there is no search textbox and the user has to click on the Page Numbers to look for the element of his interest. Then how do we handle such case.
I am facing same problem. I want to search text from 5th page 2 column..then how to use pagination.I tried many but not getting result. If u got answer then tell me.
Hi naveen can you guide me how do i handle a web table which has 1000 of records and all records are in same page. If i scroll down more and more data keeps on loading which also takes some 4 to 5 seconds to load.Please guide me i think only you can help me.
Hi Naveen.....For the second approach of customized Xpath using siblings, what if the name we are looking for is not visible in the table. The name may appear somewhere down at the bottom of the table and we have to use scroll bar to see that name. In that case, if the name is not visible, then it may throw ElementNotFound exception. How do we handle such scenarios where we can scroll down to the required name?
its a very rare case, but still u can scroll down using javascript executor using scrolling view method to that specific element to make it visible first, then use custom path using siblings.
Hi Naveen, i facing issue with following xpath //td[text()='Heavyweight Coated Paper'] in this xpath the text 'Heavyweight Coated Paper' is present but the problem is it has  , so it is not recognized becaouse of that. I can use contains instead of text equal, but the problem the patter of the text we search may be sub set another text in the same td exp: i am searching for 'Heavyweight Coated Paper ' there is other text like "super Heavyweight Coated Paper', so contains dose not work here. So could you please let me know how to search exact text which has   Thanks, Gavi
hi Naveen i have a doubt if that checkbox is at 7th place instead of 3 then whatever xpath is there will be one parent and 5 preceeding sibling then how will this xpath works?
Hi Naveen thank u for all your videos ....one question in this video 17 min 21 seconds u r correcting one xpath there u wrote tr["+i+"] ..can't we write tr[i] directly
Hi Naveen, Thanks for this video. Could you please let us know how do we handle handle a web table whose columns load as we scroll the page and so does rows. And if we have to update the [td ] of a row, in say some 5th page, how do we handle this.
Hi Naveen, I am using chropath in firefox 67.0.4. It works fine for other webapps. But in CRMPRO site, its working fine in login page .when it moves to next page, it is not inspecting any element. Please could you help me with it.
Hi Naveen,thanks for the tutorial,my question is how about if i do not know the number of raws what do i do, and another question is how do we deal with a for loop that loops on empty columns and raws?please assist i am actually blocked ,the table i am looping trough is having hidden raws and columns and my script is failing
hi sir thanks for your video,please clear my one doubt if in web table duplicate name is available and unique transation id is available then how to verify the data on the basics of the transation id please let me know REPLY
Hi naveen , I hope you be able to reply me, If i wish to add more rows, is there any way, just like arrays.length or string.length() so that i don't have to hard code terminating condition in loop
Hi Naveen, you mentioned in earlier tutorials that we should avoid using absolute Xpath, but now in this tutorial you are using absolute Xpath, why is that?
Hey i know this comment is one year old but i hope u still read this, when i m trying to do the same thing it only gives me one td and one tr i dont have any input or nothing. So in this case i m supposed to do this parent sibling thing??? Hope u reply
If I'm having one output in console. I need to found exact name in the table and I have to click. For eg if I have a printed "test test" in the console using get text. Now I have pick up the value from the console and I need to search in the table and click.
Hi Naveen, if web table has lots of data and has pagination, just like your Contacts page have, will this way may I resolve the problem? Because of how many paginations is there and which pagination number the actual search data will be present is unpredictable in runtime. Could you suggest please. Thanks
The second method is obvius better but.... only works when you have some data in the table?.... what if i want to send text to a TD instead of clicking a check box? how can i locate the first empty TD of the table? using driver.findElement(By.xpath("//a[contains(text(),' ')].......... ???
Hi Naveen, I m trying to execute same concept on "ui.cogmento.com/contacts" by using xpath driver.findElement(By.xpath("//td[contains(text(),'Test 2 Test 2')]/parent::*//preceding-sibling::td//input[@type='checkbox'])")).click(); This xpath is showing proper as highlighted on elements section of browser. But, when i m executing script, at that time its not finding this element. Thanks in advance
Impressed with your English, compare to other paid selenium courses your explanation is far better and clean.
Simple ways to approach a complex matter! Well done Naveen. I worked on a past project where all of the latest technology was incorporated..NOTHING worked!!
This was in fact a superb explanation. I think this video has made handling dynamic table seem like a feather. Appreciated.
Hi Naveen, hats off to your web table explanation. I have seen so many courses but the web table concept is not so clear. After watching this video, I am so happy that now I am very much clear in web table handling. Thank you so much. Keep it up.
So easy and very clear explanation...a never forgetting sessions 👏👏👏
Sharing knowledge is the first step to humanity 😘
Naveen your tutorials are very focused and clear!! Thanks for all your hard work!!
Hi Naveen---Your teaching style is excellent...I really learn many things from your videos. Keep it up
Absolutely brilliant approach!! Thank you for putting it up in such a simple manner!!
Thank you so much Naveen for providing these very very useful videos, your way of explaining is excellent....I learnt a lot from your videos.
Hi Naveen, your teaching style is outstanding. I learnt a lot by watching your page object model video. Keep it up great work!
U r legend in automation explanation, great sibling😍
This video was very useful for me to find a solution, thank you so much!
First method worked for me. Thank you for this approach 😊
Hello Naveen sir, Your simple and clear techniques help me to understand the topic. Keep it up sir.
This is awesome way of handling dynamic table🙏👌
Hi Naveen,
Who ever ask me for selenium tutorial first I take your name only... as your the best 1
You are amazing bro....keep uploading videos....u explain every concept very clearly
Hi Naveen ,
your teaching is amazing
just crispy and clear
Hi Naveen,
Thanks for your wonderful videos which really help a person to think about automation.
Your explanation are superb which help people to understand any things about Java or selenium very easily.....Thanks bro for nice work which you do for people.....god bless you always
@Shivanshu Sharma use this : String name= driver.findElement(By.xpath(before_xpath + I + After_xpath)).getText();
@Shivanshu Sharma use this :
String before_xpath= "//*[@id=\"vContactsForm\"]/table/tbody/tr[";
String after_xpath= "]/td[1]/input";
for (int i=5; i
@Shivanshu Sharma u didn't appended i in string name , check once
Superb Naveen!! Very very useful tricks you are given for handling dynamic table.. This help me a lot in my project. Thank you very much😊
thank you so much sir... perfectly explained
Really helpful, appreciate your work .
Great explanation sir..
Thanku so much
Hi Naveen.....your teaching is excellent.
Hi Naveen, appreciate all your tutorials, full of knowledge as always, I wanted to share my interview experience, I recently attended an interview, they asked me this tricky question and I could not give the exact solution hope you can help me with this :
"We have a big web table in our webpage consisting of lots of rows which are visible only by scrolling down vertical scroller in that table (not webpage scroller) each row is defined as separate table tag in html, how do i get to view the last row in that big table and print text from it?"
My answer was we can use javascript executor and call scrollintoview method, but he said it works only at page level not for scrolling table inside the webpage.
Appreciate your comments...
did you get the answer for this question?
It goes like this :
EventFiringWebdriver efb = new EventFiringWebdriver(driver);
efb.executeScript("document.querySelector('').scrollTop=500");
It was really amazing, & very usefull vedio...thank yow so much..Sir.
Excellent explanation , really helpful
This video helped for me so much thank u bro 😍
Helps me a lot.
Its very useful.......thank you for sharing this video
Amazing ....... thanks Naveen
Thank you Naveen 👍
Fantastic! Thanks a lot Naveen!
Nicely Explained :-) Keep Teaching.
useful and clear explaination
Thanks Jyoshna!! Keep Learning & Sharing!
Awesome tutorial
excellent tutorial.
great explanation
Really nice explanation
Nice and very clear
thanks.
I will use today this concept in my code. thanks again .
pls make video on complex part
Hi Naveen
In one of my recent interview the question was what if the table dynamically changes it’s columns like if new columns are added and referring to data in that column I need to select the checkbox
Could you help me with logic for these, I don’t want to change the XPath though new columns are getting added
Go with *contains* keyword
nice explain keep uploading
Thanks bro for your smart solution
It was really amazing ...I have one question sir....Where did you learn all this?? I want to do this all by myself but i cannot think like you sir..I want to do that without taking reference from other codes....I just want to make my own code with my own logic...What should i do for that??? Can you please help me out??
Hi Sir,
I have a small doubt, When you are writing customized XPath you are using a single slash in front of the parent element may I know the reason? When I am using a single slash in front of preceding elements also it's working fine but you are using double slash there!
Thank You!
single slash represent just inside that element and double slash represent anywhere in the DOM
@@bihari1422 Thank you
Its worked thank you so much
Hi Naveen, explained very well.. it could be better if you would have explained how you can pass the td or anchor value dynamically to that xpath by creating some method. And some more explanation when user wants to verify a perticular row values or column vlaues..
line no 48: the range of for loop is from 4 to 7. If we are truely considering the dynamic scenario then we will face issue again. Suppose next time we visit the page then 50 rows appear in the table then i think Method 1 will not be suitable.
Although I am very clear with method 2 approach but Naveen is there any way to overcome challenge of method 1??
Posted on: 13March 2022
Super bro
Hi naveen , I am not able to locate the contacts button because I am not able to find the frame in the CRM website example that you have used. Can you please help me out how can we find the frame within the new CRM webpage ?
Hi Sir,
Can I know how to write xpath for a checkbox based on its two preceding siblings. In your example only, if I want to write xpath for checkbox based on both Name and Company, how can we write? please explain.
Hi Naveen, I am trying to use this logic of webtable in POM but i am getting "Cannot invoke "com.hrm.qa.pages.Recruitment.clickOnCheckBox()" because "this.recruitment" is null" error, I am not getting what will be the return when I click in checkbox. Can u pls help me ?
thanks for sharing
Hi, why there is a single / before parent and // before preceding-sibling. What is the difference . Why can’t we use // before parent axes. Thanks in advance
You can use both in case of axes.
@@naveenautomationlabs Thank you
thanku so much sir...this video is enough to crack interview?
How to selecting the grid say some from 4 th column 3rd row to 6th column 7th row and right
click and copy the values .
it's very good session Naveen thanks but am requesting you to do one video for ancestor,descendant,following siblings and how to identified row all elements(all columns in a row) using only one xpath ?
Appending 2 strings and creating a path is good but cannot be used in python can you please help
Hi Naveen,
This Video is really useful for me... But could you please explain one or more scenarios for dynamic web Table with different XPath axes methods..
Hi Naveen,
One more question.
What if there is no Scrolling down option available but instead developers have provided the pagination option like - Previous, 1,2,3... Next, etc. with each page holding 10 records.
And if the element that we are looking for appears on the 5th page.
Fortunately, in one of my projects, developers have provided the pagination option and have also given a Search textbox above the table using which we can search the record directly and then interact with it. This has made my life easier.
But what if there is no search textbox and the user has to click on the Page Numbers to look for the element of his interest.
Then how do we handle such case.
Amol Nawale you answered your own question 😊
I am facing same problem. I want to search text from 5th page 2 column..then how to use pagination.I tried many but not getting result.
If u got answer then tell me.
Hi Naveen, Is there any customized xpath for selecting an element in 3rd row and 3rd column? or we only use absolute xpath for that?
Hi naveen can you guide me how do i handle a web table which has 1000 of records and all records are in same page.
If i scroll down more and more data keeps on loading which also takes some 4 to 5 seconds to load.Please guide me i think only you can help me.
Hi what if we don't know which column is having test 2 test keywords
I mean if check box column and name column is also getting changed. How we do in this case
Hi Naveen.....For the second approach of customized Xpath using siblings, what if the name we are looking for is not visible in the table. The name may appear somewhere down at the bottom of the table and we have to use scroll bar to see that name. In that case, if the name is not visible, then it may throw ElementNotFound exception. How do we handle such scenarios where we can scroll down to the required name?
its a very rare case, but still u can scroll down using javascript executor using scrolling view method to that specific element to make it visible first, then use custom path using siblings.
Hi Naveen,
Firepath does not exists now. Can you please suggest any other add in.?
Hi Naveen,
i facing issue with following xpath
//td[text()='Heavyweight Coated Paper']
in this xpath the text 'Heavyweight Coated Paper' is present but the problem is it has  , so it is not recognized becaouse of that.
I can use contains instead of text equal, but the problem the patter of the text we search may be sub set another text in the same td
exp: i am searching for 'Heavyweight Coated Paper ' there is other text like "super Heavyweight Coated Paper', so contains dose not work here.
So could you please let me know how to search exact text which has  
Thanks,
Gavi
@Gavi Pujar .. Hey you can try starts with or ends with keyword instead of contains.
hi Naveen i have a doubt if that checkbox is at 7th place instead of 3 then whatever xpath is there will be one parent and 5 preceeding sibling then how will this xpath works?
Hi Naveen thank u for all your videos ....one question in this video 17 min 21 seconds u r correcting one xpath there u wrote tr["+i+"] ..can't we write tr[i] directly
Hi Naveen, Thanks for this video. Could you please let us know how do we handle handle a web table whose columns load as we scroll the page and so does rows. And if we have to update the [td ] of a row, in say some 5th page, how do we handle this.
i am not able to login into freecrm.com & access ebay registration page. Are those webpages still available today?
nice explaination but i have one query in this like if you have 3 " test2 test2 " names in one record how can i handle it ?
Bro ultimate
I can not select row value of a JavaScript table.
Hi naveen you are use index in xpath but they can change, i think we should not use index? But second method is good👍👍
This is explicitly for webtable and calendar handling. Just the way of breaking xpath.
Hi Naveen, I am using chropath in firefox 67.0.4. It works fine for other webapps. But in CRMPRO site, its working fine in login page .when it moves to next page, it is not inspecting any element. Please could you help me with it.
Hi Naveen,thanks for the tutorial,my question is how about if i do not know the number of raws what do i do,
and another question is how do we deal with a for loop that loops on empty columns and raws?please assist i am actually blocked ,the table i am looping trough is having hidden raws and columns and my script is failing
Awesome
Hey Naveen its amazing...
but if we have the same contact name then how it will handle that??
than i guess you also need to put one more condition in if loop
if(element.contain("name")&&i=1)
driver.findelement.click
hi sir thanks for your video,please clear my one doubt if in web table duplicate name is available and unique transation id is available then how to verify the data on the basics of the transation id please let me know
REPLY
you are guru :)
Hi naveen , I hope you be able to reply me, If i wish to add more rows, is there any way, just like arrays.length or string.length() so that i don't have to hard code terminating condition in loop
Hi Naveen, you mentioned in earlier tutorials that we should avoid using absolute Xpath, but now in this tutorial you are using absolute Xpath, why is that?
Hi Naveen.. Good explanation.
But in my test case i have only one to call..then how to write for this ? help us
Thnx in advance
Hey i know this comment is one year old but i hope u still read this, when i m trying to do the same thing it only gives me one td and one tr i dont have any input or nothing. So in this case i m supposed to do this parent sibling thing??? Hope u reply
@@amiereviews5522 whole idea is to uniquely locate the element
Hi Naveen, what if we don’t have table with tr and td, instead data is being populated using div??
How to get those table into HashMap.
The credentials for freecrm site is not working. It's not taking to homepage. Can you please provide the credentials?
What will happen if someone deletes the preceding record ( contact_id).. in that case will it fail ?? @naveenautomationlabs
If I'm having one output in console. I need to found exact name in the table and I have to click. For eg if I have a printed "test test" in the console using get text. Now I have pick up the value from the console and I need to search in the table and click.
Hi Naveen,
if web table has lots of data and has pagination, just like your Contacts page have, will this way may I resolve the problem? Because of how many paginations is there and which pagination number the actual search data will be present is unpredictable in runtime. Could you suggest please.
Thanks
Hello Naveen Sir,
As per interview point of view is 2nd method preferable ?
Can we use it if interviewer asks to handle dynamic webtable?
Hi Naveen,
How i can browse thru all the available videos in a sequence
Please reply..
Hello naveen, Freecrm site is not working, will u plz suggest another site
The second method is obvius better but.... only works when you have some data in the table?.... what if i want to send text to a TD instead of clicking a check box? how can i locate the first empty TD of the table? using driver.findElement(By.xpath("//a[contains(text(),' ')].......... ???
Thanks!
sir how we can add entire rows and columns in dynamic table using excel sheet can you please explain us!!!
Hey naveen you have explained it very well, can you please tell how to write a feature file scenario for same webtable in cucumber
Nice
Hi Naveen,
I m trying to execute same concept on "ui.cogmento.com/contacts" by using xpath driver.findElement(By.xpath("//td[contains(text(),'Test 2 Test 2')]/parent::*//preceding-sibling::td//input[@type='checkbox'])")).click();
This xpath is showing proper as highlighted on elements section of browser. But, when i m executing script, at that time its not finding this element.
Thanks in advance
hi sir
in this xpath after text you are using single slash(/) but after preceding you are using // ---@naveen can you explain this