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')
 

最新文章

  1. Connect(); // 2015 简要整理
  2. [Android]listview recycleview的复用问题
  3. 入CTF坑必不可少的地方-保持更新
  4. SSh结合Easyui实现Datagrid的分页显示
  5. Quartz CronTrigger配置
  6. Hibernate下的Many-to-Many的级联删除
  7. Oracle定义两个变量,并对两个变量的值的长度进行判断
  8. Mysql 作业(Scheduler)
  9. Caused by: java.lang.NoClassDefFoundError: freemarker/cache/TemplateLoader
  10. NOI冲刺计划
  11. 算法导论——lec 11 动态规划及应用
  12. C++ 学习笔记3,struct长度測试,struct存储时的对齐方式
  13. python 获取当前时间
  14. 关于MATLAB处理大数据坐标文件2017527
  15. mybatis_helloworld(2)_源码
  16. mybatis insert 返回主键
  17. BZOJ_1654_[Usaco2007 Open]City Horizon 城市地平线_扫描线
  18. 通达OA数据库优化方案之_历史数据清理
  19. 百度地图在移动端下click无效的解决方案
  20. KVM虚拟机的日常管理与配置

热门文章

  1. 【并行计算-CUDA开发】warp是调度和执行的基本单位而harf-warp为存储器操作基本单位
  2. A Mixed Flash Translation Layer Structure for SLC-MLC Combined Flash Memory System
  3. 记录解决一个项目中遇到的maven打包问题
  4. springboot整合servlet
  5. [转帖]socks5 协议简介
  6. 对pdf 表单域 或文本框的操作---动态填充PDF 文件内容
  7. Codeforces 1239A. Ivan the Fool and the Probability Theory
  8. lua的数据类型
  9. hdu 4632区间dp 回文字串计数问题
  10. MVC4学习要点记二