selenium--基础学习
from selenium import webdriver
from selenium.common.exceptions import TimeoutException, NoSuchElementException
import time # 声明浏览器对象
driver = webdriver.Chrome() # 可用的浏览器对象:
# Firefox,Chrome,Ie,Edge,Opera,Safari,BlackBerry,PhantomJS,Android # 访问页面
def foo1():
driver.get("http://www.baidu.com")
print(driver.page_source) # 查找元素
try:
p=driver.find_element_by_class_name("p")
except NoSuchElementException as e:
print(e)
"""
# 单个元素
find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_tag_name
find_element_by_link_text
find_element_by_class_name
find_element_by_css_selector
find_element_by_partial_link_text # 多个元素
find_elements_by_id
find_elements_by_name
find_elements_by_xpath
find_elements_by_tag_name
find_elements_by_link_text
find_elements_by_class_name
find_elements_by_css_selector
find_elements_by_partial_link_text
""" # 通用查找方式
from selenium.webdriver.common.by import By
driver.find_element(By.ID, "kw")
"""
ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
""" # 元素交互
def foo2():
import time
driver.get("http://www.baidu.com") input = driver.find_element_by_id("kw")
input.send_keys("淘宝")
time.sleep(2) input.clear()
input.send_keys("京东")
button = driver.find_element_by_id("su")
time.sleep(2) button.click() # 交互动作
# 将动作附加到动作链中串行执行
def foo3():
driver.get("http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable")
# 切换到子frame
driver.switch_to.frame("iframeResult")
draggable = driver.find_element_by_id("draggable")
droppable = driver.find_element_by_id("droppable")
actions = webdriver.ActionChains(driver)
actions.drag_and_drop(draggable, droppable)
actions.perform()
# 切换回父frame
driver.switch_to.parent_frame() # 执行javascript
def foo4():
driver.execute_script('alert("hello")') # 获取文本和属性
def foo5():
driver.get("https://www.zhihu.com/topics")
# 隐式等待
driver.implicitly_wait(10) # 显示等待
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
wait = WebDriverWait(driver, 10)
logo = wait.until(EC.presence_of_element_located((By.ID, "zh-top-link-logo"))) print(logo.text) # 获取属性, id, 标签名, 位置, 大小
print(logo.get_attribute("class"))
print(logo.id)
print(logo.location)
print(logo.tag_name)
print(logo.size) # 前进后退
def foo6():
import time
driver.get("http://www.taobao.com")
driver.get("http://www.jd.com")
driver.get("http://www.qq.com")
time.sleep(2)
driver.back()
time.sleep(2)
driver.forward()
time.sleep(3) # cookie
def foo7():
driver.get("https://www.zhihu.com/explore")
print(driver.get_cookies())
driver.add_cookie({"name": "mouday", "value": "mouday.com"})
print(driver.get_cookies())
driver.delete_all_cookies()
print(driver.get_cookies()) # 选项卡管理
def foo8():
driver.get("https://www.qq.com/")
# 开启
driver.execute_script("window.open()")
print(driver.window_handles) # 切换
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])
driver.get("https://www.jd.com/")
time.sleep(2) # 异常处理
def foo9():
try:
driver.get("https://www.google.com")
except TimeoutException as e:
print(e.msg) try:
p = driver.find_element_by_class_name("p")
except NoSuchElementException as e:
print(e) # 关闭退出浏览器
driver.close()
driver.quit() # 如果不退出浏览器,会报错:
# ImportError: sys.meta_path is None, Python is likely shutting down --------------------- 本文来自 彭世瑜 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/mouday/article/details/80148104?utm_source=copy
selenium--基础学习的更多相关文章
- web 自动化测试 selenium基础到应用(目录)
第一章 自动化测试前提及整体介绍 1-1功能测试和自动化测试的区别 1-2自动化测试流程有哪些 1-3自动化测试用例和手工用例的区别 1-4 自动化测试用例编写 1-5 selenium的优势以及 ...
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- 如何从零基础学习VR
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...
- IOS基础学习-2: UIButton
IOS基础学习-2: UIButton UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...
- HTML5零基础学习Web前端需要知道哪些?
HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...
- python入门到精通[三]:基础学习(2)
摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...
- python入门到精通[二]:基础学习(1)
摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...
- CSS零基础学习笔记.
酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...
- Yaf零基础学习总结5-Yaf类的自动加载
Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...
- Yaf零基础学习总结4-Yaf的配置文件
在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...
随机推荐
- oracle之二ASM 管理
Oracle ASM 管理(PPT-II:602-636) 16.1 什么是ASM 自动存储管理即ASM(Automatic Storage Management),是Oracle提供的一项管理磁盘的 ...
- 《C语言进阶剖析》课程目录
<C语言进阶剖析>学习笔记 本文总结自狄泰软件学院唐佐林老师的<C语言 ...
- Mybatis和Mybatis-Plus时间范围查询,亲测有效
一.mysql 1.传入时间范围参数类型是字符串 <if test="startTime!=null and startTime.trim() neq ''"> and ...
- js 去掉字符串最后一个逗号:笑死我了
今天突然遇到js 去掉字符串最后一个逗号的问题,本想偷懒搜个代码吧,没想到看到百度的第一条记录是这么一篇文章. 网易博客: http://blog.163.com/li_crane/blog/stat ...
- ASP.NET Core 配置与获取
目录 1,来自字典 2,来自配置文件 3,层次结构 4,映射 ASP.NET Core 中,可以使用 ConfigurationBuilder 对象来构建. 主要分为三部:配置数据源 -> Co ...
- maximo开发小结
maximo的后台开发 从0开始的 就把自己写的一些代码放者 1. setWhere 的效果是在原有的sql上添加一个and 以及这个条件mboSetRemote.setWhere("EN ...
- java虚拟机之性能监控与故障处理工具
sun jdk性能监控与故障处理工具 jps: 可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一id. jstat: 用于监视虚拟机各种运行状态信息的命令航工具.它可 ...
- SpringBoot框架:通过AOP和自定义注解完成druid连接池的动态数据源切换(三)
一.引入依赖 引入数据库连接池的依赖--druid和面向切面编程的依赖--aop,如下所示: <!-- druid --> <dependency> <groupId&g ...
- Java基础一篇过(三)I/O流总结
一.啥是I/O 概念:I/O为输入,输出流的统称,流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象. 本质:本质是数据传输,即数据在两设备间的传输称为流,根据数据传输特性将流抽象为各 ...
- 报错: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
你没打开 1.双击打开 2.点击: