我正在进行网络抓取并尝试使用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'
答案 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