1. selenium是用来做什么的?
Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。
selenium可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。
在PyCharm中安装selenium插件:
2.在pychram中安装selenium
pip install selenium
3.selenium的简单使用
from selenium import webdriver
import time
# 用selenium 打开一个浏览器
driver = webdriver.Chrome()
# 打开某个网页
driver.get('https://www.baidu.com/')
# 获取搜索框
u_input = driver.find_element_by_id('kw')
# 模拟输入字符串
u_input.send_keys('python')
# 获取按键
submit = driver.find_element_by_id('su')
# 模拟点击操作
submit.click()
time.sleep(1)
# 模拟后退操作
driver.back()
time.sleep(1)
# 模拟前进操作
driver.forward()
time.sleep(1)
# 截图
driver.save_screenshot('baidu.png') # 保存
print(driver.page_source ) # 获取网络源码
# driver.close() # 关闭网页
driver.quit() # 退出浏览器
4.实现窗口切换
import time
driver = webdriver.Chrome()
driver.get("http://www.baidu.com/")
# 执行js代码.括号内写js代码
driver.execute_script("window.open()") # 打开一个窗口
driver.switch_to.window(driver.window_handles[1]) # 切换到新的窗口
driver.get("https://www.taobao.com/") # 打开淘宝网页
time.sleep(2)
# 切换到第一个窗口并关闭
driver.switch_to.window(driver.window_handles[0])
time.sleep(3)
driver.close()
# 每一个窗口都有一个唯一表示符 handles
# print(driver.window_handles)
time.sleep(3)
driver.quit()
5.实现拖拽效果
这是一个[ w3s]https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable上的实例:
from selenium import webdriver
from selenium.webdriver import ActionChains # 导入ActionChains,动作,拖拽
import time
driver = webdriver.Chrome()
actions = ActionChains(driver)
driver.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
# 切换到内联窗口
driver.switch_to.frame("iframeResult")
# 获取元素
draggable = driver.find_element_by_id("draggable")
droppable = driver.find_element_by_id("droppable")
# 将参数一的元素,拖到参数二的元素里
actions.drag_and_drop(draggable, droppable)
# 执行动作
actions.perform()
time.sleep(3)
driver.quit()
6.实现滚动效果
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.jd.com/")
time.sleep(2)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
time.sleep(2)
driver.quit()
7.谷歌无头模式
import time
from selenium import webdriver
# ChromeOptions() 函数中有谷歌浏览器的一些配置
options = webdriver.ChromeOptions()
# 告诉谷歌这里用的是无头模式
options.add_argument("headless")
driver = webdriver.Chrome(options=options)
driver.get("https://www.taobao.com/")
time.sleep(2)
# 截图
driver.save_screenshot("./taobao.png")
time.sleep(2)
driver.quit()
8.使用selenium模拟登录csdn
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://passport.csdn.net/login')
# 获取登陆界面,模拟点击"账号登录"
longin = driver.find_element_by_partial_link_text("账号登录")
longin.click()
# 获取 登录输入框, 模拟输入 账户和密码
phone = driver.find_element_by_id("all")
phone.send_keys("********") # 输入账户
password = driver.find_element_by_id("password-number")
password.send_keys("**********") # 输入密码
# 获取登陆按钮, 模拟登录
button = driver.find_element_by_tag_name("button")
button.click()
time.sleep(1)
driver.save_screenshot("./csdn.png")
time.sleep(5)
driver.quit()
网友评论