美文网首页
6.selenium 的使用

6.selenium 的使用

作者: 思绪太重_飘不动 | 来源:发表于2019-05-24 19:08 被阅读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()

相关文章

  • 6.selenium 的使用

    1. selenium是用来做什么的?Selenium 是一个用于Web应用程序测试的工具。Selenium测试直...

  • 6.selenium(获取动态页面)

  • 『心善渊』Selenium3.0基础 — 6.Selenium元

    1、什么是元素定位 元素定位就是查找HTML元素的过程。 HTML元素指的是从开始标签(start tag)到结束...

  • iconfont的使用(下载使用)

    1、下载文件 2、在生命周期中引入项目 beforeCreate () { var domModule = ...

  • Gson的使用--使用注解

    Gson为了简化序列化和反序列化的过程,提供了很多注解,这些注解大致分为三类,我们一一的介绍一下。 自定义字段的名...

  • 记录使用iframe的使用

    默认记录一下----可以说 这是我第一次使用iframe 之前都没有使用过; 使用方式: 自己开发就用了这几个属...

  • with的使用

    下面例子可以具体说明with如何工作: 运行代码,输出如下

  • this的使用

    什么是this? this是一个关键字,这个关键字总是返回一个对象;简单说,就是返回属性或方法“当前”所在的对象。...

  • this的使用

    JS中this调用有几种情况 一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象...

  • ==的使用

    积累日常遇到的编码规范,良好的编码习惯,持续更新。。。 日常使用==用于判断的时候,习惯性将比较值写前面,变量写后...

网友评论

      本文标题:6.selenium 的使用

      本文链接:https://www.haomeiwen.com/subject/ddvnzqtx.html