seleniu基本使用

308 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情

啥是selenium

  1. selenium 是用于web应用程序测试的工具
  2. selenium 测试直接运行在浏览器中,就像真的用户在操作一样
  3. 支持通过各种driver(FirfoxDriver,InternetExplorerDriver,OperaDriver,ChromDriver)驱动真实浏览器完成测试
  4. selenium也是支持无界面浏览器操作的

为啥是selenium呢

模拟浏览器,自动执行网页中的js代码,实现动态加载

怎么安装

  1. 操作谷歌浏览器驱动下载地址 chromedriver.storage.googleapis.com/index.html
  2. 谷歌浏览器版本和驱动版本之间的映射表 blog.csdn.net/huilan_same…
  3. 查看谷歌浏览器版本 谷歌浏览器右上角》帮助>关于 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()