尝试通过xpath查找表的最后一行,同时使用selenium python和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

我试图创建一个函数,该函数检查页面中的所有表行,存储并告诉您最后一行的数目。if语句继续在else结果中运行(一旦到达最后一行,函数停止)。我在寻找函数进入if条件的方法时遇到问题。 感谢并为混乱的代码道歉,初学者在这里

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()形式返回值,但什么也没有。无论如何谢谢你