关于此Xpath字符串应该更改哪些内容以查找最后一个子元素?

时间:2016-04-14 20:09:31

标签: python selenium xpath

使用以下行时找到所有子div元素的列表:

driver.find_element_by_css_selector('div[id="panel2LocListShell"]').find_elements_by_tag_name('div')

但是,当使用Xpath查找最后一个子div元素时,会出现超时错误:

例如:

WebDriverWait(driver,20).until(EC.presence_of_element_located((By.XPATH, './/div[@id = panel2LocListShell]/div[last()]')))

关于此Xpath行,应该更改什么(?'.//div[@id = panel2LocListShell]/div[last()]'

1 个答案:

答案 0 :(得分:1)

  

driver.find_element_by_css_selector('div[id="panel2LocListShell"]').find_elements_by_tag_name('div')

此处,selenium会在div元素内div找到所有id="panel2LocListShell"子元素在任意深度

  

.//div[@id = panel2LocListShell]/div[last()]

在这种情况下,您正在寻找{em}直接位于 div元素下的div元素id="panel2LocListShell"。另外,panel2LocListShell应该加上引号。

修正表达式:

.//div[@id = "panel2LocListShell"]//div[last()]