持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情
啥是selenium
- selenium 是用于web应用程序测试的工具
- selenium 测试直接运行在浏览器中,就像真的用户在操作一样
- 支持通过各种driver(FirfoxDriver,InternetExplorerDriver,OperaDriver,ChromDriver)驱动真实浏览器完成测试
- selenium也是支持无界面浏览器操作的
为啥是selenium呢
模拟浏览器,自动执行网页中的js代码,实现动态加载
怎么安装
- 操作谷歌浏览器驱动下载地址 chromedriver.storage.googleapis.com/index.html
- 谷歌浏览器版本和驱动版本之间的映射表 blog.csdn.net/huilan_same…
- 查看谷歌浏览器版本 谷歌浏览器右上角》帮助>关于 pip install selenium
使用步骤
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# 尝试传参
s = Service("chromedriver.exe")
driver = webdriver.Chrome(service=s)
driver.get('https://www.baidu.com/')
执行这段代码,浏览器就会自动打并且访问百度网站了
基本操作
根据id获取dom对象
button = browser.find_element_by_id('su')
print(button)
根据标签的属性值来获取dom对象
button=browser.find_element_by_name('wd')
print(button)
根据xpath匹配规则来查找dom对象集合
button=browser.find_elements_by_xpath('//input[@id="su"]')
print(button)
根据标签名来获取dom对象集合
button=browser.find_elements_by_tag_name('div')
print(button)
通过内容文本查找所有链接中匹配的dom对象
button=browser.find_element_by_link_text('直播')
print(button)
操作dom对象
获取dom上的属性
input = browser.find_element_by_id('su')
print(input.get_attrbute('class'))
获取dom对象的名称
print(input.tag_name)
获取dom对象的内容
print(input.text)
实际案例 首先打开百度首页,然后睡眠2秒,等网站加载完毕,找到百度搜索的input框,输入刘德华,然后睡眠2秒,然后找到百度一下按钮,然后出触发click,就是用程序执行了一下百度搜索流程
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# 尝试传参
s = Service("chromedriver.exe")
browser = webdriver.Chrome(service=s)
browser.get('https://www.baidu.com/')
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()