使用identic类(Selenium,Python)从许多元素中收集信息

时间:2017-07-28 15:58:54

标签: python selenium

我正试图从ebay中的东西收集名称和价格。例如,我搜索“armani”,而不是我需要使用Selenium收集第一页上的每个项目并将其附加到列表中。但是我的代码中存在问题:

mylist = list()
for a in driver.find_element_by_xpath(".//*[@id='item3aeba8d9f0']/div"):
    name = a.findElement(By.xpath(".//*[@id='item3aeba8d9f0']/div/div[2]/h3]")).getText()
    price = a.findElement(By.xpath(".//*[@id='item3aeba8d9f0']/div/div[3]/div[2]/div/span[1]/span")).getText()
    mylist.append(name, price)
print(name)

结果应该是:[[名称,价格],[名称,价格],......]

1 个答案:

答案 0 :(得分:0)

听起来你想要将元组附加到表单列表(名称,价格)。 当您想要遍历一系列Web元素时,您也试图遍历单个Web元素。

mylist = list()
for a in driver.find_elements_by_xpath(".//*[@id='item3aeba8d9f0']/div"): ##Change to .find_elements from .find_element
    name = a.findElement(By.xpath(".//*[@id='item3aeba8d9f0']/div/div[2]/h3]")).getText()
    price = a.findElement(By.xpath(".//*[@id='item3aeba8d9f0']/div/div[3]/div[2]/div/span[1]/span")).getText()
    mylist.append((name, price)) // THE CHANGE IS HERE!!!
    ##or you instead of tuples you could do a two element list.
    mylist.append([name, price]) // THE CHANGE IS HERE!!!
print(name)