2017-07-28 59 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