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的配置 ...
随机推荐
- range如何倒序
for j in range(3,-2,-1): 表示对3进行每次加-1的操作,直到-2,但不包括-2 print(j) 打印出3 2 1 0 -1都换行展示的
- fiddler工具介绍及证书设置
fiddler 目录 1.Fiddler介绍 01.介绍 02.简单使用 03.结果状态码 介绍完了,接下来就到证书了 2.Fiddler证书设置 这就是fiddler证书设置的全部步骤了 1.Fid ...
- 原生js实现懒加载并节流
像淘宝网站等,页面中有着大量图片,一次性全部加载这些图片会使浏览器发送大量请求和造成浪费.采用懒加载技术,即用户浏览到哪儿,就加载该处的图片.这样节省网络资源.提升用户体验.减少服务器压力. 方法1: ...
- istio 常见的 10 个异常
总结使用 istio 常见的10个异常: Service 端口命名约束 流控规则下发顺序问题 请求中断分析 sidecar 和 user container 启动顺序 Ingress Gateway ...
- Java体系结构介绍
Java技术的核心就是Java虚拟机——所有Java程序都在其上运行,需要Java虚拟机.Java API和Java,class文件的配合,Java程序才能够运行 为什么使用Java 通过网络连接 ...
- MySql基础_DDL_DML_DQL(资料一)
今日内容 数据库的基本概念 MySQL数据库软件 安装 卸载 配置 SQL 数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB 2. 什么数据库? * 用于存储和管理数据的仓 ...
- 为什么阿里巴巴禁止使用BigDecimal的equals方法做等值比较?
GitHub 17k Star 的Java工程师成神之路,不来了解一下吗! GitHub 17k Star 的Java工程师成神之路,真的不来了解一下吗! GitHub 17k Star 的Java工 ...
- 1.Concurrent概述
- 【原创】一层Nginx反向代理K8S化部署实践
目录: 1)背景介绍 2)方案分析 3)实现细节 4)监控告警 5)日志收集 6)测试 一.背景介绍 如下图所示,传统方式部署一层Nginx,随着业务扩大,维护管理变得复杂,繁琐,耗时耗力和易 ...
- Powershell编程基础-001-基本语法
变量的定义:$a="abc" 变量的引用也是echo $a 注释: 1.单行注释:单行注释是在每行的开头键入井号#的注释. #符号右边的所有内容都将被忽略,也可以在 ...