for循环生成非法表达式错误

时间:2017-04-23 19:40:36

标签: python-2.7 xpath selenium-webdriver

当我尝试使用如下的迭代时,我得到非法表达错误。

以下代码:

from selenium import webdriver 

url='https://search.newyorkfed.org/fomc-docs/search?advanced_search=true&fomc_document_type=minutes&text=&search_precision=All+Words&from_month=3&from_year=1951&to_month=4&to_year=2017&sort=Relevance&Search=Search' 

driver = webdriver.Firefox() 
driver.get(url) time.sleep(5)
htmlSource = driver.page_source time.sleep(5) 
for i in driver.find_elements_by_xpath('//*[@id="content"]/p[%s]/strong/a'%i): 
   print(i.get_attribute('href'))

1 个答案:

答案 0 :(得分:0)

在您的XPath表达式i尚未定义,因此您无法使用它。无论如何i in driver.find_elements_...()应该返回WebElement,因此在XPath

中使用它是没有意义的

我不确切知道您使用p[%s]的确切原因,但如果您只想获取"结果"中的所有链接,请尝试:

for link in driver.find_elements_by_xpath('//strong/a'): 
    print(link.get_attribute('href'))