通过xpath获取循环中的所有元素

时间:2016-07-06 06:52:58

标签: python selenium xpath

我目前正在使用python学习selenium

html是:

<ol class="item-section">
<li>
   <div class="abc xyz">
           <div class="foo qwe">
                 <a href="/watch123"></a>
           </div>
   </div>           
</li>
<li>
     <div class="abc xyz">
           <div class="foo qwe">
                 <a href="/watch456"></a>
           </div>
   </div>
</li>
<li>
     <div class="abc xyz">
           <div class="foo qwe">
                 <a href="/watch678"></a>
           </div>
   </div>
</li>
</ol>

我希望通过xpath从列表中获取所有href 我试过了

html_list = driver.find_element_by_class_name("item-section")
    items = html_list.find_elements_by_tag_name("li")
    stack=[]
    index = 1
    for item in items:
        index+=1
        link = item.find_element_by_xpath("//div[@class='foo qwe']["+index+"]/a")
        print (index,"--->  ",link.get_attribute("href"))

但是错误Can't convert 'int' object to str implicitly 如果我只是使用

link = item.find_element_by_xpath("//div[@class='foo qwe']/a")

我多次获得第一次href

1 个答案:

答案 0 :(得分:0)

您可以使用

获取元素列表
driver.find_elements_by_xpath("//div[@class='foo qwe']/a")

or

from selenium.webdriver.common.by import By
inputs = driver.find_elements(By.XPATH, "//div[@class='foo qwe']/a")