6.selenium 的使用

2019-05-24  本文已影响0人  思绪太重_飘不动

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()
上一篇 下一篇

猜你喜欢

热点阅读