iframe

driver.switch_to_frame(id="xx")

多窗口

from selenium import webdriver
from time import sleep driver = webdriver.Chrome()
driver.get("http://mail.sina.com.cn/")
driver.implicitly_wait(30)
driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[7]/div[1]/a[2]").click()
sleep(2) now_handle = driver.current_window_handle
print("now_handle:%s"%now_handle)
for i in driver.window_handles:
print("i:%s"%i)
if i!=now_handle:
driver.switch_to_window(i)
sleep(2)
driver.find_element_by_name('email').send_keys("")
刷新
driver.refresh()
获取执行的浏览器
driver.name
获取属性
name=driver.find_element_by_id("kw")
name.get_attribute("value")
元素是否可见
name.is_displayed()

元素是否可编辑
name.is_enabled()
元素是否可选中
name.is_selected()

悬浮/鼠标右击/鼠标双击
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome()
name=driver.find_element_by_id("kw")
ActionChains(driver).move_to_element(name).perform() 示例2:
action_obj = ActionChains(driver)
name = driver.find_element_by_id("freename")
action_obj.context_click(name).perform()
action_obj.double_click(name).perform()

下拉框
from selenium import webdriver
from selenium.webdriver.support.select import Select driver = webdriver.Chrome()
name = driver.find_element_by_id("kw")
select_obj = Select(name)
select_obj.select_by_index(2)
select_obj.select_by_value("name")
select_obj.select_by_visible_text('每条20个')

弹框
from selenium import webdriver

driver = webdriver.Chrome()
driver.switch_to_alert().text
driver.switch_to_alert().accept()
driver.switch_to_alert().dismiss()
driver.switch_to_alert().send_keys('xx')

 等待
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get("http://mail.sina.com.cn/")
so = WebDriverWait(driver,10).until(expected_conditions.element_to_be_clickable((By.ID,'kw')))
so.click()
 
 指定元素的文本位置/判断元素是否可见
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
from time import sleep driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get("http://mail.sina.com.cn/")
driver.find_element_by_id("freename").send_keys(' ')
sleep(2)
driver.find_element_by_id("freepassword").send_keys(' ')
sleep(2)
driver.find_element_by_link_text('登录').click()
isTest = WebDriverWait(driver,10).until(expected_conditions.text_to_be_present_in_element((By.XPATH,'/html/body/div[1]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[1]/span[1]'),'请输入邮箱名'))
isDisplay = WebDriverWait(driver,10).until(expected_conditions.visibility_of_element_located((By.XPATH,'请输入邮箱名')))
if isTest:
print('ok')
浏览器滑动
from selenium import webdriver
from time import sleep driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.get("https://www.cnblogs.com/zhang-dan/p/9977604.html")
down = "var q=document.documentElement.scrollTop=1000"
sleep(3)
driver.execute_script(down)
sleep(3)
top = "var q=document.documentElement.scrollTop=0"
sleep(3)
driver.execute_script(top)
sleep(3)

富文本处理

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.implicitly_wait(30) def richText(data):
"在富文本里添加内容"
js = "document.getElementById('ueditor_0').contentWindow.document.body.innerHTML='%s'"%(data)
driver.execute_script(js) driver.get("http://ueditor.baidu.com/website/onlinedemo.html")
richText("haha")
sleep(3)

取消只读属性

def cancellOnlyRead(data):
" 取消只读属性,并添加内容 "
js = "$(\"input[placeholder='start_tome']\").removeAttr('readonly'); $(\"input[placeholder='start_tome']\").attr('value','%s')"%data
driver.execute_script(js)

屏幕截图

from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(30) driver.get("http://www.baidu.com")
driver.save_screenshot('baidu.png')
driver.get_screenshot_as_file('baidu2.png')
 

selenium 实战的更多相关文章

  1. selenium实战脚本集——新浪微博发送QQ每日焦点(火狐)

    selenium实战脚本集(1)——新浪微博发送QQ每日焦点,乙醇用谷歌实现的,下边是用火狐实现的. 代码如下: # coding = utf-8 from selenium import webdr ...

  2. Selenium实战脚本集—新浪微博发送QQ每日焦点

    Selenium实战脚本集-新浪微博发送QQ每日焦点 http://www.spasvo.com/ceshi/open/kygncsgj/Selenium/201549150822.html 背景 很 ...

  3. 1.selenium实战之从txt文档读取配置信息并执行登录

    前置条件: 1.本机已搭建ECShop3.0网站 2.在脚本目录创建了user.txt文本如下: 目的:实现从txt中读取配置文件信息,本实战中,包含url地址.用户名.密码,然后进行ESChop的登 ...

  4. selenium实战脚本集(2)——简单的知乎爬虫

    背景 很多同学在工作中是没有selenium的实战环境的,因此自学的同学会感到有力无处使,想学习但又不知道怎么练习.其实学习新东西的道理都是想通的,那就是反复练习.这里乙醇会给出一些有用的,也富有挑战 ...

  5. selenium实战脚本集(1)——新浪微博发送QQ每日焦点

    背景 很多同学在工作中是没有selenium的实战环境的,因此自学的同学会感到有力无处使,想学习但又不知道怎么练习.其实学习新东西的道理都是想通的,那就是反复练习.这里乙醇会给出一些有用的,也富有挑战 ...

  6. 小白学 Python 爬虫(40):爬虫框架 Scrapy 入门基础(七)对接 Selenium 实战

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  7. selenium实战-自动退百度云共享群

    必备知识 在官网上下好selenium-3.0.1-py2.py3-none-any.whl,然后进入下载文件所在的位置 pip install selenium-3.0.1-py2.py3-none ...

  8. selenium实战学习第一课

    #-*- coding:utf-8 -*- __author__ = "carry" from selenium import webdriver from selenium.we ...

  9. Electorn(桌面应用)自动化测试之Java+selenium实战例子

    基于electorn的桌面应用,网上相关资料较少.所有记录一下.使用java+selenium+testng对该类型应用的自动化测试方法. 代码样例 package com.contract.web. ...

  10. Selenium实战总结(webwiew下拉框定位)

    基于常见的两种下拉框的展示形式: 1.点击弹出下拉框: 2.鼠标移动弹出下拉框(move_to_element) 实例一[鼠标点击弹出的下拉框]: e.g百度首页的设置--高级搜索--时间: 导包: ...

随机推荐

  1. ClosureTable

    1. 查询所有子节点 SELECT `chidren_id` FROM `xi_category4_closure` WHERE `parent_id` = 0 AND `distance` > ...

  2. ambari 快速安装部署

    OS:Linux CPU消耗大,要准备5G以上,不然集群启动不了(我自己给它配了8G,启动整个集群是没问题,要用的话估计不够) 一.准备工作: 1.关闭防火墙:sudo ufw disable/ 2. ...

  3. 【Abode Air程序开发】移动设备、桌面和浏览器应用程序开发的差异

    移动设备.桌面和浏览器应用程序开发的差异 在移动设备应用程序中使用 Spark 和 MX 组件的限制 移动设备应用程序在性能方面的注意事项 浏览器  将应用程序部署为 SWF 文件,以用于在浏览器中运 ...

  4. 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

    目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...

  5. vue-router在返回时返回到上次滚动位置

    参考链接:https://blog.csdn.net/qq_40963664/article/details/79850589

  6. 截取铃声python代码

    from pydub import AudioSegment file_name = "张杰 - 这就是爱.mp3" sound = AudioSegment.from_mp3(f ...

  7. kafka修改topic副本数

    工作案例: 大数据开发用系统脚本自动在kafka建topic,检查后才发现副本数只有1个,存在数据丢失的风险.需要立刻把副本数改为3个. 开始干活,首先想到的是下面的命令: ${BIN_PATH}/k ...

  8. Linux:shift 命令可以将参数依次向左移动一个位置

    在脚本中,命令行参数可以依据其在命令行中的位置来访问.第一个参数是 $1 ,第二个参数 是 $2 ,以此类推. 下面的语句可以显示出前3个命令行参数: echo $1 $2 $3 更为常见的处理方式是 ...

  9. 项目四:Java秒杀系统方案优化-高性能高并发实战

    技术栈 前端:Thymeleaf.Bootstrap.JQuery 后端:SpringBoot.JSR303.MyBatis 中间件:RabbitMQ.Redis.Druid 功能模块 分布式会话,商 ...

  10. Python-基础-文件操作-随机存取

    随机存取 文件操作中,read()和write()都属于顺序存取,只能按顺序从头到尾的进行读写.实际上我们可以只访问文件中我们感兴趣的部分.对此,我们可以使用seek()和tell()方法.两种方法的 ...