我正在尝试迭代具有程序列表的页面,然后我必须选择下面图像中定义的复选框,才能获得页面上循环的运行长度。
但当我试图通过下一个按钮浏览页面时,它会停止点击复选框,并将我扔到错误下方。
我尝试过xpath、css选择器和id方法,但都失败了。
DOM元素SS以及复选框突出显示的
使用的代码行-
CheckBoxclick = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#workflow_table > thead > tr > th.first.checkbox-column.checkbox > input"))).click()
错误:-
File "D:/Vipul Garg Backup/XXXX/TestingPardotExportProgramsData.py", line 74, in <module>
ProgramsPathlist = getDataForPrograms(RecordsonOnePage,totalnofpages)
File "D:/Vipul Garg Backup/XXXX/TestingPardotExportProgramsData.py", line 63, in getDataForPrograms
RecordsonOnePage = getrecordsoNpage()
File "D:/Vipul Garg Backup/XXXX/TestingPardotExportProgramsData.py", line 42, in getrecordsoNpage
CheckBoxclick = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#workflow_table > thead > tr > th.first.checkbox-column.checkbox > input"))).click()
File "C:UsersVipul.GargAppDataLocalProgramsPythonPython37libsite-packagesseleniumwebdriverremotewebelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "C:UsersVipul.GargAppDataLocalProgramsPythonPython37libsite-packagesseleniumwebdriverremotewebelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:UsersVipul.GargAppDataLocalProgramsPythonPython37libsite-packagesseleniumwebdriverremotewebdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:UsersVipul.GargAppDataLocalProgramsPythonPython37libsite-packagesseleniumwebdriverremoteerrorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=80.0.3987.122)
但代码的上一行正在间歇性地工作,并如上所述抛出错误
关于这行代码替换的任何建议,以及为什么我会得到这样的不一致。
您使用的是表的ID,复选框在该表中,所以您需要传递复选框的定位器。
由于没有为复选框定义id,因此使用xpath来访问类似于//input[@type='checkbox']的定位器