概要:
一、应用场景
- 爬虫;
- 自动化测试;
二、环境配置
-
chrome driver
安装
- 环境安装:
pip install selenium
- Selenium driver官方API文档:https://www.selenium.dev/selenium/docs/api/py/api.html#
- Selenium官方教程:https://selenium-python.readthedocs.io/
三、基本应用
-
Selenium
的基本定位方法
from selenium import webdriver
import time
# 自动驱动浏览器
driver = webdriver.Chrome('/Users/****/Desktop/git/AI_Lesson/chromedriver')
driver.get('https://www.baidu.com')
time.sleep(5)
# 关闭浏览器当前窗口
# driver.close()
# 关闭浏览器
driver.quit()
-
初识
js
定位
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# 自动驱动浏览器
driver = webdriver.Chrome('/Users/****/Desktop/git/AI_Lesson/chromedriver')
driver.get('https://www.jd.com')
# 1、find_element_by_id
search_element = driver.find_element_by_id('key')
search_element.send_keys('小米手机')
search_element.send_keys(Keys.RETURN)
# 2、find_element_by_class_name
driver.find_element_by_class_name('cate_menu_lk').click()
# 3、find_element_by_link_text
driver.find_element_by_link_text('手机').click()
# 4、find_element_by_partial_link_text
driver.find_element_by_partial_link_text('个护').click()
# 5、find_element_by_xpath
driver.find_element_by_xpath('//*[@id="J_cate"]/ul/li[11]').click()
# 6、find_element_by_css_selector
driver.find_element_by_css_selector('#J_cate > ul > li:nth-child(4)').click()
time.sleep(5)
# 关闭浏览器当前窗口
# driver.close()
# 关闭浏览器
driver.quit()
-
Selenium
的鼠标事件
# 鼠标悬停
elem = driver.find_element_by_link_text('手机')
ActionChains(driver).move_to_element(elem).perform()
time.sleep(5)
old_phone = driver.find_element_by_link_text('老人机')
old_phone.click()
-
屏幕截图
# 直接截图
driver.save_screenshot("screenshot_01.png")
# 条件判断
handles = driver.window_handles
current_handle = driver.current_window_handle
for handle in handles:
if handle != current_handle:
# 关闭当前网页
driver.close()
# 句柄切换
driver.switch_to.window(handle)
driver.save_screenshot('screenshot_02.png')
网友评论