该文章记录学习过程中软件的安装配置使用过程中用过的有用的教程
不断更新
步骤:下载安装python并配置环境变量、下载安装pycharm、cmd中pip install selenium、从镜像站中下载配置对应浏览器版本的webDriver(不同浏览器用不同的驱动)
python安装配置环境变量:
webDriver下载安装
在镜像站内找到对应浏览器版本的镜像包下载,解压后把exe文件放到pycharm项目根目录
(也可以把driver配置到系统环境变量里,但是由于浏览器更换频繁,直接放到根目录更方便)
火狐用geckodriver、谷歌用Chromedriver……
zaznpmmirror 中国镜像站https://npmmirror.com/
实例一:通过python文件打开百度并搜索内容,暂停5秒后关闭浏览器
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
#通过webdriver获取浏览器对象
driver=webdriver.Firefox()
url='https://www.baidu.com/'
driver.get(url)#打开资源
time.sleep(5)#暂停五秒
driver.quit()#回收内存资源
selenium的八种定位方式
id,name,class name,tag name,link text,partial link text,xpath,css selector
(以下实例分别使用ID、link text、css selector 、XPATH进行定位)
实例二:通过ID获取元素并进行操作
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
#通过webdriver获取浏览器对象
driver=webdriver.Firefox()
url='https://www.baidu.com/'
driver.get(url)#打开资源
#获取元素
driver.find_element(By.ID,'kw').send_keys("先导入By模块")#输入框输入内容
driver.find_element(By.ID,'su').click()#点击按钮
time.sleep(5)#暂停五秒
driver.quit()#回收内存资源
实例三:通过超链接文本获取元素并操作
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
#通过webdriver获取浏览器对象
driver=webdriver.Firefox()
url='https://www.baidu.com/'
driver.get(url)#打开资源
driver.find_element(By.LINK_TEXT,"hao123").click()#通过超链接获取元素并操作
time.sleep(5)#暂停五秒
driver.quit()#回收内存资源
实例四:通过css选择器获取元素并操作
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
#通过webdriver获取浏览器对象
driver=webdriver.Firefox()
url='https://www.baidu.com/'
driver.get(url)#打开资源
#通过css选择器获取元素并操作
driver.find_element(By.CSS_SELECTOR,".s_ipt").send_keys("css选择器")#css通过class选择
driver.find_element(By.CSS_SELECTOR,'#su').click()#css通过id选择
time.sleep(5)#暂停五秒
driver.quit()#回收内存资源
实例五:通过控制台获取XPATH定位元素并操作
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
#通过webdriver获取浏览器对象
driver=webdriver.Firefox()
url='https://www.baidu.com/'
driver.get(url)#打开资源
#XPATH:xml 可扩展的标记语言 path 路径
driver.find_element(By.XPATH,"//*[@id='kw']").send_keys("xpath定位")
driver.find_element(By.XPATH,"//*[@value='百度一下']").click()
#右键元素复制XPATH格式自动生成(写死)
time.sleep(5)#暂停五秒
driver.quit()#回收内存资源
浏览器相关操作
实例一:浏览器最大化、设置浏览器窗口尺寸、设置浏览器窗口位置
import time
from selenium import webdriver
#通过webdriver获取浏览器对象
driver=webdriver.Firefox()
url='https://www.baidu.com/'
driver.get(url)#打开资源
# 最大化浏览器
driver.maximize_window()
time.sleep(1)
# 设置浏览器尺寸
driver.set_window_size(800,1200)
time.sleep(1)
# 设置浏览器位置
driver.set_window_position(300,300)
time.sleep(5)#暂停五秒
driver.quit()#回收内存资源
实例二:页面后退、前进、刷新
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver=webdriver.Firefox()
url='https://www.baidu.com/'
driver.get(url)
# 实例二
driver.find_element(By.ID,'kw').send_keys("先导入By模块")
driver.find_element(By.ID,'su').click()
time.sleep(2)
driver.back()#后退
time.sleep(2)
driver.forward()#前进
time.sleep(2)
driver.refresh()#刷新
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
#通过webdriver获取浏览器对象
driver=webdriver.Firefox()
url='https://www.baidu.com/'
driver.get(url)#打开资源
# # 实例一
# # 最大化浏览器
# driver.maximize_window()
# time.sleep(1)
#
# # 设置浏览器尺寸
# driver.set_window_size(800,1200)
# time.sleep(1)
#
# # 设置浏览器位置
# driver.set_window_position(300,300)
# 实例二
driver.find_element(By.ID,'kw').send_keys("先导入By模块")
driver.find_element(By.ID,'su').click()
time.sleep(2)
driver.back()#后退
time.sleep(2)
driver.forward()#前进
time.sleep(2)
driver.refresh()#刷新
time.sleep(2)
driver.quit()
实例三:关闭当前页面
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver=webdriver.Firefox()
url='https://www.baidu.com/'
driver.get(url)
driver.find_element(By.LINK_TEXT,"hao123").click()
time.sleep(4)
driver.close()#关闭当前页面
time.sleep(4)
driver.quit()
实例三:获取当前页面URL
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver=webdriver.Firefox()
url='https://www.baidu.com/'
driver.get(url)
driver.find_element(By.LINK_TEXT,"hao123").click()
time.sleep(4)
print(driver.current_url)#打印当前页面URL
driver.close()#关闭当前页面
driver.quit()
控制台结果: