python 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
python selenium 代码的更多相关文章
- python+selenium初学者常见问题处理
要做web自动化,第一件事情就是搭建自动化测试环境,那就没法避免的要用到selenium了. 那在搭建环境和使用过程中经常会遇到以下几类问题: 1.引入selenium包失败: 出现这种错误,一般分为 ...
- python selenium下拉框定位
一.前言 总结一下python+selenium select下拉选择框定位处理的两种方式,以备后续使用时查询: 二.直接定位(XPath) 使用Firebug找到需要定位到的元素,直接右键复制XPa ...
- Python + Selenium +Chrome 批量下载网页代码修改【新手必学】
Python + Selenium +Chrome 批量下载网页代码修改主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt来达到在登陆状态下 批量打开并下载网页, ...
- 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...
- 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试
Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...
- Python + Selenium 实现登录Office 365
最近捡起之前用的Python + Selenium实现工作中需要的登录Office 365功能.(吐槽:国内网络真是卡,登录Office 365实属不易.另外Selenium这样的网站都要墙,无法理解 ...
- python selenium自动化(二)自动化注册流程
需求:使用python selenium来自动测试一个网站注册的流程. 假设这个网站的注册流程分为三步,需要提供比较多的信息: 在这个流程里面,需要用户填入信息.在下拉菜单中选择.选择单选的radio ...
- 使用python selenium进行自动化functional test
Why Automation Testing 现在似乎大家都一致认同一个项目应该有足够多的测试来保证功能的正常运作,而且这些此处的‘测试’特指自动化测试:并且大多数人会认为如果还有哪个项目依然采用人工 ...
- Python Selenium设计模式-POM
前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点.应用场景和核心思想有一定的理解和掌握. 为什么要用POM 基于python s ...
随机推荐
- Noip前的大抱佛脚----字符串
目录 字符串 经验 用FFT求解字符串匹配问题 两(多)串DP时状态合并 最长公共子序列转LIS 位运算最大值 挂链哈希 哈希处理回文串 树哈希 字符串模板库 KMP 最小循环表示 Mancher A ...
- 9.26 开课第二十三天 (JS表单验证)
<form action="lizi1.html" method="post"> 非空验证 <input type="text&qu ...
- 2597: [Wc2007]剪刀石头布
2597: [Wc2007]剪刀石头布 链接 分析: 费用流. 首先转化一下问题,整张图最优的情况是存在$C_n^3$个,即任意3个都行,然后考虑去掉最少不满足的三元环. 如果u赢了v,u向v连一条边 ...
- Kubernetes学习之路(十六)之存储卷
目录 一.存储卷的概念和类型 二.emptyDir存储卷演示 三.hostPath存储卷演示 四.nfs共享存储卷演示 五.PVC和PV的概念 六.NFS使用PV和PVC 1.配置nfs存储 2.定义 ...
- python之打包、发布模块
一.python中针对于写好的模块,并且比人也可以使用改模块,这样就可以以同意的打出来,让别人安装或者赋值过后可以更好的使用以及集成. 二.最近在学习python所以这里主要是记录一下python的打 ...
- PCA人脸识别的python实现
这几天看了看PCA及其人脸识别的流程,并在网络上搜相应的python代码,有,但代码质量不好,于是自己就重新写了下,对于att_faces数据集的识别率能达到92.5%~98.0%(40种类型,每种随 ...
- 关于IntelliJ IDEA 创建Maven项目速度慢
在maven的VM Options加上-DarchetypeCatalog=internal参数,如下:
- Altium软件中Unknowpin的详细解决办法
1.Altium软件中Unknowpin第一种原因:PCB封装缺失遗漏,直接加入对应的封装即可.点击箭头指示处的Add,接着点击OK之后,再点击图中所示处Browse...选择封装库的封装即可. 2. ...
- Docker创建数据卷
当程序在容器中运行时,需要与其他容器中的程序或者容器外部的程序进行文件读写操作时,就需要进行数据的交换:容器内部的文件系统,是一个临时层,当容器停止运行并被删除时,这个临时层就会被一同丢弃:为了达到从 ...
- 九九乘法表的python复习
九九开始的复习 这周复习之前的学的知识关于range函数,gormat函数,print的使用总结一下 从一个小例子开始,开始我的回顾吧, 大家都是从那个九九乘法表开始的数学之旅,从一一得一,开始了我们 ...