我做了这个XPath
alo1 = driver.find_element(By.XPATH, "//div[@class='txt-block']/span/a/span").text
print(alo1)
但问题是:我只得到第一个元素,但是有3个或4个元素具有相同的XPath,我想要所有。
从页面到页面,元素数量从0变为4。
我该怎么做?
另外,您认为可以制作另一个XPath吗?我试图获得电影制片人的名字。
编辑:
我有第二个困难。我将此结果传递给excel表,但它需要在一行中打印,否则只打印最后一行。怎么做到呢? ,
wb = xlwt.Workbook()
ws = wb.add_sheet("A Test Sheet")
driver = webdriver.Chrome()
driver.get('http://www.imdb.com/title/tt4854442/?ref_=wl_li_tt')
labels = driver.find_elements_by_xpath("//div[@class='txt-
block']/span/a/span")
for label in labels:
print (label.text)
ws.write(x-1,1,label.text)
wb.save("sinopses.xls")
答案 0 :(得分:2)
您可以一次性获取所有内容,然后获取每个元素的文本:
combList = list(comb)
答案 1 :(得分:1)
对于第一个问题:
FindElement
总是只给出一个结果,即使定位符匹配多个,它也会自动获取第一个结果。
如果定位器提供了多个匹配结果而您想要所有这些结果,那么您应该选择findElements
关于第二个问题:
labels = driver.find_elements_by_xpath("//div[@class='txt-
block']/span/a/span")
result = ''
for label in labels:
result += label.text
print (result)
ws.write(x-1,1,result)
wb.save("sinopses.xls")