find_elements_by_xpath 输出文本
时间: 2023-09-20 12:07:22 浏览: 70
find_elements_by_xpath 可以返回一个 WebElement 对象列表,每个对象都包含了匹配到的元素。要输出这些元素的文本内容,可以使用 for 循环遍历列表,并调用每个 WebElement 对象的 text 属性,例如:
```python
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.example.com")
elements = driver.find_elements_by_xpath("//a")
for element in elements:
print(element.text)
driver.quit()
```
这个示例代码使用了 Chrome 浏览器和 example.com 网站作为示例。它查找了所有的链接元素,遍历了这个列表并输出了每个链接的文本内容。
相关问题
优化一下这个代码,添加使用 find_elements_by_xpath 方法查找页面中所有 class 为 data 的 div 元素下的 href 属性为 span元素,将这个元素的文本内容存储到 list_text 列表中,并将列表打印出来。:xlSpider = Blueprint('xlSpider', name) url = 'https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6' # 将ChromeDriver的路径添加到系统环境变量中 executable_path = 'E:\chromedriver_win32\chromedriver.exe' browser = webdriver.Chrome(executable_path=executable_path) # 访问目标页面并等待页面加载完成 browser.get(url) time.sleep(5) # 等待页面加载完成,时间可以根据实际情况调整 # tweet = browser.find_elements_by_xpath("//div[@class='data']//a[@href]") # browser.find_elements(by=By.XPATH) tweet = browser.find_elements(By.XPATH, "//div[@class='data']//a[@href]") list_text = [element.text for element in tweet] print(list_text)
下面是优化后的代码,使用了 `find_elements_by_xpath` 方法查找页面中所有 class 为 data 的 div 元素下的 href 属性为 span 元素,并将这个元素的文本内容存储到 `list_text` 列表中,最后将列表打印出来:
```python
from selenium.webdriver.common.by import By
xlSpider = Blueprint('xlSpider', name)
url = 'https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6'
# 将 ChromeDriver 的路径添加到系统环境变量中
executable_path = 'E:\chromedriver_win32\chromedriver.exe'
browser = webdriver.Chrome(executable_path=executable_path)
# 访问目标页面并等待页面加载完成
browser.get(url)
time.sleep(5) # 等待页面加载完成,时间可以根据实际情况调整
# 使用 find_elements_by_xpath 方法查找页面中所有 class 为 data 的 div 元素下的 href 属性为 span 元素
tweets = browser.find_elements_by_xpath("//div[@class='data']//a[@href]/span")
# 将元素的文本内容存储到 list_text 列表中
list_text = [tweet.text for tweet in tweets]
# 打印列表
print(list_text)
```
find_elements_by_xpath找到页面中存放的文本
find_elements_by_xpath可以通过XPath表达式找到页面中的元素,然后通过元素对象的text属性获取元素中的文本。
例如,以下代码可以找到百度搜索结果页面中所有搜索结果的标题文本:
```python
from selenium import webdriver
# 打开浏览器
driver = webdriver.Chrome()
# 访问百度搜索结果页面
driver.get("https://www.baidu.com/s?wd=selenium")
# 找到所有搜索结果的标题元素,并打印文本
titles = driver.find_elements_by_xpath('//h3[@class="t"]/a')
for title in titles:
print(title.text)
# 关闭浏览器
driver.quit()
```
在上面的代码中,我们使用了XPath表达式'//h3[@class="t"]/a'找到了所有搜索结果的标题元素,然后通过元素对象的text属性获取了标题文本。
阅读全文