通过从列表中获取元素来更改xpath

时间:2017-07-28 12:14:05

标签: python xml selenium xpath

我正在进行网络抓取并尝试使用xpath和selenium进行刮擦。只需更改列表中存储的内容即可更改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'

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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