selenium可以帮助我们便捷的获取网站中动态加载的数据,也可以便捷实现模拟登录;
selenium是基于浏览器自动化的一个模块,使用可以操作浏览器来帮我们实现一些自动化的操作!
Selenium 是一个广泛使用的自动化测试工具,用于测试 Web 应用程序的功能和兼容性。它提供了一组功能强大的工具和库,可以模拟用户在浏览器中的操作,并对应用程序进行自动化测试。
以下是 Selenium 的一些重要特点和组成部分:
多浏览器支持:Selenium 支持多种主流浏览器,包括 Chrome、Firefox、Safari、Edge 等。这意味着您可以使用相同的测试脚本在不同的浏览器中执行测试,以验证应用程序的兼容性和一致性。
多语言支持:Selenium 提供了多种编程语言的支持,包括 Java、Python、C#、JavaScript 等。这使得开发人员可以使用自己熟悉的语言编写测试脚本,并灵活地与其他工具和框架进行集成。
元素定位:Selenium 提供了丰富的元素定位方法,可以通过 ID、类名、标签名、XPath、CSS 选择器等方式定位页面上的元素。这使得测试人员可以准确地操作和验证页面上的各个元素。
页面交互和操作:Selenium 可以模拟用户在浏览器中的各种操作,如点击、输入、选择、提交表单等。这使得测试人员可以编写测试脚本来模拟用户在应用程序中的交互,以验证应用程序的功能和用户体验。
并发测试:Selenium 支持并发测试,可以同时运行多个测试用例或测试套件,提高测试效率和速度。
浏览器控制:Selenium 可以完全控制浏览器的行为,如打开新窗口、切换窗口、处理弹窗、处理 Cookies 等。这使得测试人员可以模拟各种场景和情况,进行更全面和复杂的测试。
总体而言,Selenium 是一个功能强大、灵活且广泛使用的自动化测试工具,可以帮助开发人员和测试人员进行 Web 应用程序的自动化测试。无论是测试 Web 应用程序的功能、兼容性还是进行数据采集和挖掘,Selenium 都是一个重要的工具。
pip install selenium
下载驱动程序一定要和浏览器版本匹配!
驱动器下载路径:https://chromedriver.storage.googleapis.com/index.html
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from time import sleep
# 环境搭建
from selenium.webdriver import Chrome
# 创建一个Service对象
from webdriver_manager.chrome import ChromeDriverManager
service = Service(ChromeDriverManager().install())
web = Chrome(service=service)
# 向淘宝发送一个请求
web.get("https://www.taobao.com")
# 执行一组js程序 向下滚动
web.execute_script('window.scrollTo(0,document.body.scrollHeight)')
# 实现标签定位
search_input = web.find_element(By.ID, 'q')
# 标签的交互
search_input.send_keys('区块链入门')
# 定位搜索按钮
btn = web.find_element(By.CLASS_NAME, 'btn-search')
# 点击按钮
btn.click()
web.get('http://www.baidu.com')
sleep(2)
# 回退
web.back()
sleep(2)
web.forward()
sleep(5)
web.quit()
编写基于浏览器自动化的操作代码:
--发起请求:get(url)
--标签定位:find系列的方法
--标签交互:send_keys(‘xxx’)
--执行js程序:execute_script(‘jsCode’)
--前进,后退:forward()、back()
--关闭浏览器:quit()
当页面中存在 iframe 时,需要先切换到 iframe 中才能对其中的元素进行操作。
当处理 iframe(内嵌框架)和执行动作链(ActionChains)时,可以按照以下步骤在 Python 中使用 Selenium:
switch_to.frame()
方法来切换到指定的 iframe。例如: from selenium import webdriver
driver = webdriver.Chrome()
iframe_element = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(iframe_element)
在切换到 iframe 后,可以使用常规的 Selenium 方法来定位和操作 iframe 中的元素。
ActionChains
类来支持动作链的执行。动作链(ActionChains)是一系列连续的动作,可以模拟用户在页面上的复杂操作,如鼠标移动、拖拽、键盘操作等。在 Python 中,可以使用 ActionChains
类来执行动作链。以下是一个示例,展示了如何使用动作链来模拟鼠标移动和点击操作:from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
actions = ActionChains(driver)
element = driver.find_element_by_id("elementId")
actions.move_to_element(element).click().perform()
在上述示例中,首先导入 webdriver
和 ActionChains
类。然后,创建一个 ActionChains
对象,并使用 move_to_element()
方法将鼠标移动到指定元素上,接着使用 click()
方法模拟点击操作,最后使用 perform()
方法执行动作链。
根据具体需求,可以使用其他的 ActionChains
方法,如 drag_and_drop()
、send_keys()
、double_click()
等来执行不同类型的动作。