我有一些基本的 selenium 代码和一个执行良好的 xpath 表达式。
xpath:
/html/body/div/div/table[2]/tbody/tr/td/div/table/tbody/tr//td/div[5]/table/tbody/tr[2]
选择我感兴趣的部分,包含许多
元素。
但是,像这样附加'//p':
/html/body/div/div/table[2]/tbody/tr/td/div/table/tbody/tr//td/div[5]/table/tbody/tr[2]//p
不只选择那些
元素。相反,我最终得到的是一个元素。
我显然缺少一些基本的东西。这是我的代码的示例:
#!/usr/bin/env python
from selenium import webdriver
from time import sleep
fp = webdriver.FirefoxProfile()
wd = webdriver.Firefox(firefox_profile=fp)
wd.get("http://someurl.html")
# appending //p here is the problem that finds only a single <a> element
elems = wd.find_element_by_xpath("/html/body/div/div/table[2]/tbody/tr/td/div/table/tbody/tr/td/div[5]/table/tbody/tr[2]//p")
print elems.get_attribute("innerHTML").encode("utf-8", 'ignore')
wd.close()
编辑:按照建议使用 find_element* s *_by_xpath 而不是 find_element 来解决(感谢 Alexander Petrovich 发现这一点)。