如何在Selenium中逐行打印XPath定位元素的文本内容
解决方案
首先修正原有代码的核心问题:find_element_by_xpath 返回的是WebElement对象,必须先通过.text属性拿到文本字符串,才能调用split方法拆分单词。
完整实现代码(for循环版本,符合你的需求)
# 获取目标元素并提取文本内容 element = driver.find_element_by_xpath('//*[@id="mw-content-text"]/div[1]/p[1]') raw_text = element.text # 拆分得到单词列表 word_list = raw_text.split() formatted_lines = [] current_line_words = [] for idx, word in enumerate(word_list): current_line_words.append(word) # 每满10个单词,或遍历到最后一个单词时生成一行 if len(current_line_words) == 10 or idx == len(word_list) - 1: formatted_lines.append(' '.join(current_line_words)) current_line_words = [] # 拼接所有行,每行之间加换行 final_text = '\n'.join(formatted_lines) # 输出查看效果 print(final_text)
简化写法(列表切片实现)
如果你想要更短的代码,可以直接用切片按步长分组,逻辑和上面的循环完全一致:
element = driver.find_element_by_xpath('//*[@id="mw-content-text"]/div[1]/p[1]') word_list = element.text.split() final_text = '\n'.join([' '.join(word_list[i:i+10]) for i in range(0, len(word_list), 10)]) print(final_text)
如果需要调整每行的单词数,只需把代码里的数字10替换为你想要的数值即可。
内容的提问来源于stack exchange,提问作者qweggry
相关产品推荐
相关产品推荐

