Selenium简单介绍
Selenium 是一个用于 Web 应用程序测试的工具;Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样;支持通过各种 driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驱动真实浏览器完成测试;selenium 也是支持无界面浏览器操作的
Selenium 还可以模拟浏览器功能,自动执行网页中的js代码,实现动态加载
安装驱动
使用 Selenium 之前需要安装驱动,参考文档:https://www.cnblogs.com/Y-wee/p/17034837.html
安装完驱动执行pip install selenium
安装 selenium 依赖包,通过from selenium import webdriver
导入依赖开始使用:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service(executable_path="./chromedriver_win32/chromedriver.exe")
driver = webdriver.Chrome(service=service)
# 发送请求
driver.get("https://www.baidu.com")
# 获取网页源码
page = driver.page_source
print(page)
# 关闭浏览器
driver.quit()
selenium 官方文档:https://www.selenium.dev/documentation/
元素定位
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
service = Service(executable_path="./chromedriver_win32/chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("https://www.baidu.com")
# 根据 id 获取元素
driver.find_element(by=By.ID, value='su')
# 根据标签的属性值获取元素
driver.find_element(by=By.NAME, value='wd')
# 根据 xpath 获取元素
driver.find_element(by=By.XPATH, value="//input[@id='su']")
# 根据标签名称获取元素
driver.find_element(by=By.TAG_NAME, value='input')
# 根据 bs4 获取元素
driver.find_element(by=By.CSS_SELECTOR, value='#su')
# 根据链接文本获取元素
driver.find_element(by=By.LINK_TEXT, value='新闻')
driver.quit()
以上方法只能获取符合条件的第一个元素,如果需要获取多个符合条件的元素用
find_elements()
即可
元素交互
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
service = Service(executable_path="./chromedriver_win32/chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("https://www.baidu.com")
time.sleep(2)
# 获取百度文本输入框
input = driver.find_element(by=By.ID, value='kw')
# 在文本框输入内容
input.send_keys('周杰伦')
time.sleep(2)
# 获取百度搜索按钮
button = driver.find_element(by=By.ID, value='su')
# 点击按钮
button.click()
time.sleep(2)
'''
执行 js 脚本,滑动到最下面
'''
js_bottom = 'document.documentElement.scrollTop=100000'
driver.execute_script(js_bottom)
time.sleep(2)
'''
获取下一页按钮并点击
'''
next_page = driver.find_element(by=By.CLASS_NAME, value='n')
next_page.click()
time.sleep(2)
# 回到上一页
driver.back()
time.sleep(2)
# 回到下一页
driver.forward()
time.sleep(2)
driver.quit()
标签:webdriver,service,driver,selenium,介绍,简单,import,Selenium,find
From: https://www.cnblogs.com/Y-wee/p/17074396.html