Selenium Python:如何计算div中的表数?



我正在尝试使用 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 中的表数来确认这一点。有谁知道如何做到这一点?

简单的解决方案是使用以下 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(( 以显示有多少元素

相关内容

  • 没有找到相关文章

最新更新