尝试通过xpath查找表的最后一行,同时使用selenium python和if语句
我试图创建一个函数,该函数检查页面中的所有表行,存储并告诉您最后一行的数目。if语句继续在else结果中运行(一旦到达最后一行,函数停止)。我在寻找函数进入if条件的方法时遇到问题。 感谢并为混乱的代码道歉,初学者在这里尝试通过xpath查找表的最后一行,同时使用selenium python和if语句,python,selenium,webdriver,Python,Selenium,Webdriver,我试图创建一个函数,该函数检查页面中的所有表行,存储并告诉您最后一行的数目。if语句继续在else结果中运行(一旦到达最后一行,函数停止)。我在寻找函数进入if条件的方法时遇到问题。 感谢并为混乱的代码道歉,初学者在这里 def lastRowFinder(): for e in range(1, 100): tableRowElement = driver.find_element_by_xpath("//*[@id='ctl00_cphContenido_gridSelec
def lastRowFinder():
for e in range(1, 100):
tableRowElement = driver.find_element_by_xpath("//*[@id='ctl00_cphContenido_gridSeleccionados']/tbody/tr" + str([e]))
tableRowNumber = e
LastRow = driver.find_elements_by_id("id='ctl00_cphContenido_gridSeleccionados']/tbody/tr" + str([e]))
if selenium.webdriver.support.expected_conditions.presence_of_element_located(LastRow) == False:
print("Row not found")
else:
e = e + 1
print(tableRowNumber)
是否要在表中查找tr的数量?尝试:
driver.execute_script("""
return document.querySelectorAll('#table_id tr').length
""")
这可以使用一些Javasript/jQuery来完成。 在我的示例中,我想找到最后一行,找到编辑图标并单击它
browser.execute_script("let lastrow = $('table').find('tr')[document.querySelectorAll('table tr').length-1];$(lastrow).find('.fa-edit').click();")
看起来您要查找相同(第一)行100次。尝试
find\u elements\u by_xpath(..)
返回列表中的所有行并删除循环。我不认为是这样的:我使用100作为范围,因为这将是可能的最大行数(这是一个基于约会的表,因此行数将随时间减少)。但是,当我运行代码时,我得到了当前行的实际数量。我的错误。我错过了柜台。根据文档,如果未找到元素,LastRow应为空列表。谢谢,迈克,我会调查的/tr“+str([e])->/tr[{}]”。格式(str(e))应该是。似乎没有返回任何值,尝试让它以str()和int()形式返回值,但什么也没有。无论如何谢谢你