打印出来的下拉列表元素显示在一个大段落中,而不是单独的行

问题描述

大家好,我使用硒,并在下拉列表中打印了所有元素

from selenium import webdriver
from selenium.webdriver.common.by import By

PATH = "C:\Program Files (x86)\chromedriver.exe"

driver = webdriver.Chrome(PATH)
driver.get("url")
listofelements = driver.find_elements(By.XPATH,'xpath')
for i in range(len(listofelements)):
    print(listofelements[i].get_attribute('textContent'))

它可以工作,但不符合我的预期。 发生的是,它只循环一次,但是里面的所有元素都像一个大段落一样被打印出来,好像它只是一个html元素一样,

香蕉-橙-苹果-葡萄

代替:

香蕉

橙色

苹果

葡萄

这是HTML代码的样子:

  <select>
   <option value='1'>banana</option>
   <option value='2'>orange</option>
   <option value='3'>apple</option>
   <option value='4'>grape</option>
  </select>

有多个选项,但是循环仅执行一次,并将其全部打印在一个大段中。为什么会发生这种情况,如何使它在单独的行中逐个打印每个选项?

解决方法

如果我对您的理解正确,那么您可能正在寻找类似的东西:

listofelements = browser.find_elements_by_xpath('//option')
for elem in listofelements:
    print(elem.text)

输出(基于您的示例html):

banana
orange
apple
grape