目录
什么是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()