爬虫-selenium_交互

目录

什么是selenium的交互?

交互操作

创建python文件

导包

创建浏览器对象并打开对应网址

睡眠两秒

获取文本框对象

在文本框中输入胡彦斌并睡眠两秒

获取百度一下的按钮

点击按钮并睡眠两秒

滑道底部并睡眠两秒

获取下一页按钮并点击

回退、前进再退出

完整代码


什么是selenium的交互?

Selenium的交互主要是指在使用Selenium进行Web自动化测试或自动化操作时,模拟用户与Web页面及其元素之间的各种交互行为。这些交互行为涵盖了多个层面,包括与页面元素的交互、与浏览器的交互,以及通过执行JavaScript代码与页面进行更深入的交互。

交互操作

接下来通过案例来讲解这些交互操作。可以跟着操作。

案例需求:找到百度的输入框,并输入“胡彦斌”,再点击“百度一下”按钮,来到新的页面后,一直往下滑,滑至底部,并点击下一页。然后再回退,再前进,最后退出。

创建python文件

导包

from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.common.by import By

创建浏览器对象并打开对应网址

# 指定 msedgedriver.exe 的路径
path = 'D:\\software\\edge_driver\\msedgedriver.exe'

# 创建一个 Service 对象
service = Service(executable_path=path)

# 初始化浏览器对象
browser = webdriver.Edge(service=service)

# 打开网址
url = 'https://www.baidu.com'
browser.get(url)

睡眠两秒

为方便演示,这里先睡眠两秒

# 睡眠两秒
import time
time.sleep(2)

获取文本框对象

可以看到,百度首页的输入框id为"kw",所以我们可以通过id来获取文本框对象。

# 获取文本框对象
input = browser.find_element(By.ID,'kw')

在文本框中输入胡彦斌并睡眠两秒

# 在文本框中输入胡彦斌
input.send_keys("胡彦斌")
time.sleep(2)

获取百度一下的按钮

可以看到,百度首页的输入框id为"su",所以我们可以通过id来获取按钮对象。

# 获取百度一下的按钮
button = browser.find_element(By.ID,'su')

点击按钮并睡眠两秒

button.click()
time.sleep(2)

滑道底部并睡眠两秒

# 滑倒底部
js_bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(js_bottom)
time.sleep(2)

做到这里,现在可以运行一下程序看效果。之后再接着写代码。

获取下一页按钮并点击

通过xpath插件和浏览器控制台,定位到该按钮

所以我们可以通过xpath表达式来定位“下一页”按钮

# 获取下一页的按钮
next = browser.find_element(By.XPATH,'//a[@class="n"]')
# 点击按钮
next.click()
time.sleep(2)

回退、前进再退出

# 回退操作(回到上一页)
browser.back()
time.sleep(2)

# 前进(回到回退之前)
browser.forward()
time.sleep(3)
# 退出
browser.quit()

注意,这里的回退指的应该是浏览器的这个按钮:

前进也是同理

恭喜你,完成了这个按钮,现在运行程序,检验成功吧!

完整代码

from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.common.by import By
# 指定 msedgedriver.exe 的路径
path = 'D:\\software\\edge_driver\\msedgedriver.exe'

# 创建一个 Service 对象
service = Service(executable_path=path)

# 初始化浏览器对象
browser = webdriver.Edge(service=service)

# 打开网址
url = 'https://www.baidu.com'
browser.get(url)
# 睡眠两秒
import time
time.sleep(2)
# 获取文本框对象
input = browser.find_element(By.ID,'kw')
# 在文本框中输入胡彦斌
input.send_keys("胡彦斌")
time.sleep(2)
# 获取百度一下的按钮
button = browser.find_element(By.ID,'su')
# 点击按钮
button.click()
time.sleep(2)
# 滑倒底部
js_bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(js_bottom)
time.sleep(2)
# 获取下一页的按钮
next = browser.find_element(By.XPATH,'//a[@class="n"]')
# 点击按钮
next.click()
time.sleep(2)

# 回退操作(回到上一页)
browser.back()
time.sleep(2)

# 前进(回到回退之前)
browser.forward()
time.sleep(3)
# 退出
browser.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值