seleniumpython:如何计算div中的表数?

2024-05-19 03:02:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Xpath查找一个元素,但它的变化如下:

//*[@id="emailwrapper"]/div/div/table[1]/tbody/tr/td[2]/a
//*[@id="emailwrapper"]/div/div/table[2]/tbody/tr/td[2]/a
//*[@id="emailwrapper"]/div/div/table[3]/tbody/tr/td[2]/a
//*[@id="emailwrapper"]/div/div/table[4]/tbody/tr/td[2]/a
//*[@id="emailwrapper"]/div/div/table[5]/tbody/tr/td[2]/a
//*[@id="emailwrapper"]/div/div/table[6]/tbody/tr/td[2]/a

我目前的假设是,我要查找的表将始终是表数组中的最后一个表,但我想通过计算第二个div中的表数来确认这一点。有人知道如何做到这一点吗?你知道吗


Tags: divid元素table数组xpathtrtd
2条回答

简单的解决方案是使用下面的xpath。你知道吗

//*[@id='emailwrapper']/div/div/table

你的代码应该是

lastTable = len(driver.find_elements_by_xpath("//*[@id='emailwrapper']/div/div/table"))-1
print lastTable

假设至少有一个元素与“//*[@id=“emailwrapper”]/div/div/table”的xpath匹配,您可以简单地执行以下操作:

driver.find_elements_by_xpath('//*[@id="emailwrapper"]/div/div/table')

它将返回一个列表,如果没有找到,则引发NoSuchElementException。你知道吗

结果完全相同,但书写方式不同:

from selenium.webdriver.common.by import By
driver.find_elements(By.XPATH, '//*[@id="emailwrapper"]/div/div/table')

在此之后,您可以对列表中有多少个元素执行len()

相关问题 更多 >

    热门问题