2017-07-28 64 views
2

我在做网页抓取并试图使用xpath和selen进行刮擦。 xpath可以通过改变我已经存储在列表中来改变。我想创建一个可以自动更改xpath并查找内容的循环。我试过这个,但是有些地方我错了。通过从列表中获取元素来更改xpath

packages= ["EVENINGS_AND_WEEKEND_EXTRA", "ANYTIME_EXTRA"] 

for i in packages: 
    name= driver.find_element_by_xpath('//*[@id="productButtonControls_ST_"+i]/label') 
    print name.text 

而不是“EVENINGS_AND_WEEKEND_EXTRA”,我想要列表包中的不同元素。

#this is the required xpath which needs to be altered 
    //*[@id="productButtonControls_ST_EVENINGS_AND_WEEKEND_EXTRA"]/label' 

回答

1

尝试将这些值转换成XPath表达如下:

packages= ["EVENINGS_AND_WEEKEND_EXTRA", "ANYTIME_EXTRA"] 

for i in packages: 
    name= driver.find_element_by_xpath('//*[@id="productButtonControls_ST_%s"]/label' % i) 
    print name.text 
+0

感谢名单了很多!这很简单,我真的需要刷新我的基础知识..;) –

0

您需要更改find​​_element_by_xpath - > find_elements_by_xpath