find_elements_by_xpath找到页面中存放的文本
时间: 2023-09-20 12:06:14 浏览: 90
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属性获取了标题文本。
相关问题
name=driver.find_elements_by_xpath(xpath_name)怎么改为最新版本selenium的语法
在最新的Selenium版本中,`find_elements_by_xpath` 方法可能会有不同的命名,因为API可能会有变动。如果你正在使用的是当前推荐的ElementFinder API,而不是直接操作`WebDriver`对象,你可以这样做:
```python
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 获取等待后的元素集合
elements = WebDriverWait(driver, timeout).until(
EC.presence_of_all_elements_located((By.XPATH, xpath_name))
)
for element in elements:
# 对每个元素进行操作...
```
这里使用了`WebDriverWait`配合`expected_conditions`模块,这能保证元素存在并且可见后再执行后续操作。如果直接操作`driver`,则可以使用`find_elements()`代替,如下:
```python
elements = driver.find_elements(by=By.XPATH, value=xpath_name)
```
记得在使用之前确认你的Selenium库版本以及webdriver是否支持这样的新语法。
find_elements_by_xpath 输出文本
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 网站作为示例。它查找了所有的链接元素,遍历了这个列表并输出了每个链接的文本内容。
阅读全文