问题描述
大家好,我使用硒,并在下拉列表中打印了所有元素
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