I was trying to locate the element which is present inside the table tag But iam getting the error
“org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {“method”:”xpath”,”selector”:”//div[@id=’divTable’]/child::div/child::div/child::table/child::tbody/child::tr/child::td2/input”} (Session info: chrome=103.0.5060.114)”
Here is my code….
@Test (priority=8) public void autogenerate() throws InterruptedException { driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='axpiframe']"))); WebElement autogenerate= driver.findElement(By.xpath("//body/div[@id='dvlayout']/div[@id='pagebdy']/div[@id='heightframe']/div[@id='wBdr']/div[@id='myModal']/div[1]/div[1]/div[2]/div[1]/ul[1]/li[9]/a[1]")); click(driver, autogenerate, 20); WebElement fieldname= driver.findElement(By.xpath("//input[@id='name000F1']")); sendkeys(driver, fieldname, 20, "autotime"); WebElement fieldcaption= driver.findElement(By.xpath("//input[@id='caption000F1']")); click(driver, fieldcaption, 20); WebElement defsequence= driver.findElement(By.xpath("//input[@id='Def_Sequence000F2']")); click(driver, defsequence, 20); WebElement icon= driver.findElement(By.xpath("//body/div[@id='dvlayout']/div[@id='pagebdy']/div[@id='heightframe']/div[@id='wBdr']/div[@id='wbdrHtml']/div[@id='DivFrame2']/div[@id='divDc2']/div[@id='randomID_212']/div[@id='dvDef_Sequence']/div[2]/div[1]/i[1]")); click(driver, icon, 20); Thread.sleep(5000); WebElement prefix= driver.findElement(By.xpath("//div[@id='divTable']/child::div/child::div/child::table/child::tbody/child::tr/child::td[2]/input")); sendkeys(driver, prefix, 20, "AM"); }
Here is HTML….
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta charset="utf-8" /><meta name="description" content="Table" /><meta name="keywords" content="Agile Cloud, Axpert,HMS,BIZAPP,ERP" /><meta name="author" content="Agile Labs" /><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title> Table </title><link href="../Css/thirdparty/bootstrap/3.3.6/bootstrap.min.css" rel="stylesheet" type="text/css" /><link href="../ThirdParty/gridstack.js-0.3.0/dist/gridstack.css" rel="stylesheet" type="text/css" /><link href="../Css/thirdparty/jquery-ui/1.12.1/jquery-ui.min.css" rel="stylesheet" type="text/css" /><link href="../Css/thirdparty/jquery-ui/1.12.1/jquery-ui.structure.min.css" rel="stylesheet" type="text/css" /><link href="../Css/thirdparty/jquery-ui/1.12.1/jquery-ui.theme.min.css" rel="stylesheet" type="text/css" /><link href="../ThirdParty/jquery-confirm-master/jquery-confirm.min.css" rel="stylesheet" type="text/css" /><link href="../ThirdParty/DataTables-1.10.13/media/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css" /><link href="../Css/Icons/icon.css" rel="stylesheet" type="text/css" /><link href="../Css/thirdparty/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css" /><link href="../ThirdParty/codemirror/codemirror.css" rel="stylesheet" type="text/css" /><link href="../Css/jquery-ui-timepicker-addon.min.css" rel="stylesheet" type="text/css" /><link href="../Js/jquery.timeentry.package/jquery.timeentry.css" rel="stylesheet" type="text/css" /><link href="../Css/globalStyles.min.css?v=35" rel="stylesheet" type="text/css" /><link href="../Css/wizardComp.min.css?v=17" rel="stylesheet" type="text/css" /><link href="../css/ExportNew.min.css?v=32" rel="stylesheet" type="text/css" /><link href="../Css/import.min.css?v=30" rel="stylesheet" type="text/css" /><link href="../Css/responsibilties.min.css?v=10" rel="stylesheet" type="text/css" /><link href="../Css/propSheet.min.css?v=3" rel="stylesheet" type="text/css" /><link href="../Css/msgBoxLight.css" rel="stylesheet" type="text/css" /><link href="../Css/tstructNewUi.min.css?v=59" rel="stylesheet" type="text/css" /><link href="../Css/animate.min.css" rel="stylesheet" type="text/css" /><link href="../ThirdParty/bootstrap-tokenfield/dist/css/bootstrap-tokenfield.min.css" rel="stylesheet" type="text/css" /><link href="../newPopups/Remodal/remodal-default-theme.min.css" rel="stylesheet" type="text/css" /><link href="../newPopups/Remodal/remodal.min.css" rel="stylesheet" type="text/css" /><link href="../Css/axpertPopup.min.css?v=22" rel="stylesheet" type="text/css" /> <script> if (!('from' in Array)) { // IE 11: Load Browser Polyfill document.write('<script src="../Js/polyfill.min.js"></script>'); } </script> <script type="text/javascript"> var FetchPickListRows = 1000; </script> <script src="../Js/thirdparty/jquery/3.1.1/jquery.min.js"></script> <script src="../ThirdParty/DataTables-1.10.13/media/js/jquery.dataTables.min.js"></script> <script src="../ThirdParty/DataTables-1.10.13/media/js/dataTables.bootstrap.min.js"></script> <script src="../Js/jquery.browser.min.js"></script> <script src="../Js/printjs.min.js"></script> <script src="../ThirdParty/jquery-confirm-master/jquery-confirm.min.js"></script> <script src="../Js/noConflict.min.js"></script> <script type="text/javascript" src="../Js/iFrameHandler.min.js"></script> <script src="../Js/propSheet.min.js"></script> <script src="../Js/jquery.timeentry.package/jquery.timeentry.min.js"></script> <script src="../Js/alerts.min.js?v=28"></script> <script src="../Js/jQueryUi/jquery.tablesorter.min.js"></script> <script src="../ThirdParty/bootstrap-tokenfield/dist/bootstrap-tokenfield.min.js"></script> <script src="../Js/common.min.js?v=85"></script> <script src="../Js/ckeditor/ckeditor.js?v=1"></script> <script src="../Js/ckRtf.js"></script> <script src="../Js/JDate.min.js"></script> <script src="../Js/thirdparty/bootstrap/3.3.6/bootstrap.min.js"></script> <script src="../Js/thirdparty/jquery-ui/jquery-ui-autoCom/jquery-ui-autoCom.min.js"></script> <script src="../Js/jquery-ui-timepicker-addon.min.js"></script> <script src="../ThirdParty/lodash.min.js"></script> <script src="../ThirdParty/gridstack.js-0.3.0/dist/gridstack.js"></script> <script src="../ThirdParty/gridstack.js-0.3.0/dist/gridstack.jQueryUI.js"></script> <script src="../Js/jquery.msgBox.min.js"></script> <script src="../Js/jQueryUi/jquery.scrollabletab.min.js"></script> <script src="../Js/tstructvars.min.js?v=52"></script> <script src="../Js/md5.min.js"></script> <script src="../Js/adjustwindow.js"></script> <script src="../Js/wizardComp.js"></script> <script src="../Js/tstruct.min.js?v=383"></script> <script src="../Js/util.min.js"></script> <script src="../Js/tstruct-pdf.min.js"></script> <script src="../newPopups/Remodal/remodal.min.js"></script> <script src="../newPopups/axpertPopup.min.js?v=45"></script> <script src="../Js/handlebars.min.js?v=1"></script> <script src="../Js/tstTable.min.js?v=9"></script> </head> <body> <form name="form1" method="post" action="./tsttable.aspx?fldId=Def_Sequence000F2" id="form1"> <div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="3/epi2NOzZ4VmPo7Vmb+TxMGr70gGKys52QAMmeXvG5Lm3qOhrp7iFXHzQfiwsoUdicOkkwYT2rQ2QwYZWzysVJHmx3z88zoVTV22f99lx4=" /> </div> <div> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="7F438B0E" /> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="pZzJrDUxojFaoW1Xwo0BH7CLYZ2J12wPy/QjMK/JiLqwgeSvxBXWAXBmmIiK8LOyUv9Im74lsN5ecTx48/KdfR2puWHi3mg5Z9FaulZsR1nEfrwhpsISz3BpohI5R2+u" /> </div> <div id="divTable"> </div> <input type="hidden" name="hdnfieldId" id="hdnfieldId" value="Def_Sequence000F2" /> </form> </body> </html>
Here is page source…..
Advertisement
Answer
We can see there is one frame before the element so first switch to frame and then Use below xpath for table value input
driver.switchTo().frame("iframeDefineSequence"); WebElement prefix= driver.findElement(By.xpath("//input[@name='prefixtxt']"));