我正在尝试使用 Selenium 和 xpaths 获取一些数据。
以下 xpath 工作正常:
print sel.get_attribute("xpath=(//*[@id='course_list']/*[@class='series'])[4]//*[@class='series_links']//a/@href")
并返回 4 个匹配的 URL。到目前为止,一切都很好。
问题是我想编写一个 xpath 来单独定位每个 URL。
使用 Firefox xpath 检查器插件,我设法确认以下代码完全符合我的需要:
((//*[@id='course_list']/*[@class='series'])[4]//*[@class='series_links']//a/@href)[1]
但是尽管在 Firefox xpath 检查器中工作,我似乎无法让它在 Selenium 中工作。
每当我尝试执行时:
print sel.get_attribute("xpath=((//*[@id='course_list']/*[@class='series'])[4]//*[@class='series_links']//a/@href)[1]")
我收到以下错误:
Exception: ERROR: Invalid xpath [2]: ((//*[@id='course_list']/*[@class='series'])[4]//*[@class='series_links']//a
不知道这里发生了什么。我犯了一个简单的错误,还是 Selenium xpath 不支持像 FF xpath 检查器那样的嵌套括号?
任何想法都将不胜感激,因为我已经为此工作了几个小时,但似乎无法使其发挥作用:(