iframe

  1. driver.switch_to_frame(id="xx")

多窗口

  1. from selenium import webdriver
  2. from time import sleep
  3.  
  4. driver = webdriver.Chrome()
  5. driver.get("http://mail.sina.com.cn/")
  6. driver.implicitly_wait(30)
  7. 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()
  8. sleep(2)
  9.  
  10. now_handle = driver.current_window_handle
  11. print("now_handle:%s"%now_handle)
  12. for i in driver.window_handles:
  13. print("i:%s"%i)
  14. if i!=now_handle:
  15. driver.switch_to_window(i)
  16. sleep(2)
  17. driver.find_element_by_name('email').send_keys("")
  1. 刷新
    driver.refresh()
  1. 获取执行的浏览器
    driver.name
  1. 获取属性
  1. name=driver.find_element_by_id("kw")
  1. name.get_attribute("value")
  1. 元素是否可见
  1. name.is_displayed()
  1.  
  1. 元素是否可编辑
  1. name.is_enabled()
  1. 元素是否可选中
  1. name.is_selected()
  2.  
  3. 悬浮/鼠标右击/鼠标双击
  1. from selenium import webdriver
  2. from selenium.webdriver.common.action_chains import ActionChains
  3.  
  4. driver = webdriver.Chrome()
  5. name=driver.find_element_by_id("kw")
  6. ActionChains(driver).move_to_element(name).perform()
  7.  
  8. 示例2:
  9. action_obj = ActionChains(driver)
  10. name = driver.find_element_by_id("freename")
  11. action_obj.context_click(name).perform()
  12. action_obj.double_click(name).perform()
  1.  
  2. 下拉框
  1. from selenium import webdriver
  2. from selenium.webdriver.support.select import Select
  3.  
  4. driver = webdriver.Chrome()
  5. name = driver.find_element_by_id("kw")
  6. select_obj = Select(name)
  7. select_obj.select_by_index(2)
  8. select_obj.select_by_value("name")
  9. select_obj.select_by_visible_text('每条20个')
  1.  
  2. 弹框
  1. from selenium import webdriver
  2.  
  3. driver = webdriver.Chrome()
  4. driver.switch_to_alert().text
  5. driver.switch_to_alert().accept()
  6. driver.switch_to_alert().dismiss()
  7. driver.switch_to_alert().send_keys('xx')
  1.  
  1.  等待
  1. from selenium import webdriver
  2. from selenium.webdriver.support.ui import WebDriverWait
  3. from selenium.webdriver.support import expected_conditions
  4. from selenium.webdriver.common.by import By
  5.  
  6. driver = webdriver.Chrome()
  7. driver.implicitly_wait(5)
  8. driver.get("http://mail.sina.com.cn/")
  9. so = WebDriverWait(driver,10).until(expected_conditions.element_to_be_clickable((By.ID,'kw')))
  10. so.click()
  1.  
  1.  指定元素的文本位置/判断元素是否可见
  1. from selenium import webdriver
  2. from selenium.webdriver.support.ui import WebDriverWait
  3. from selenium.webdriver.support import expected_conditions
  4. from selenium.webdriver.common.by import By
  5. from time import sleep
  6.  
  7. driver = webdriver.Chrome()
  8. driver.implicitly_wait(5)
  9. driver.get("http://mail.sina.com.cn/")
  10. driver.find_element_by_id("freename").send_keys(' ')
  11. sleep(2)
  12. driver.find_element_by_id("freepassword").send_keys(' ')
  13. sleep(2)
  14. driver.find_element_by_link_text('登录').click()
  15. 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]'),'请输入邮箱名'))
  16. isDisplay = WebDriverWait(driver,10).until(expected_conditions.visibility_of_element_located((By.XPATH,'请输入邮箱名')))
  17. if isTest:
  18. print('ok')
  1. 浏览器滑动
  1. from selenium import webdriver
  2. from time import sleep
  3.  
  4. driver = webdriver.Chrome()
  5. driver.implicitly_wait(30)
  6. driver.get("https://www.cnblogs.com/zhang-dan/p/9977604.html")
  7. down = "var q=document.documentElement.scrollTop=1000"
  8. sleep(3)
  9. driver.execute_script(down)
  10. sleep(3)
  11. top = "var q=document.documentElement.scrollTop=0"
  12. sleep(3)
  13. driver.execute_script(top)
  14. sleep(3)

富文本处理

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

取消只读属性

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

屏幕截图

  1. from selenium import webdriver
  2. driver = webdriver.Chrome()
  3. driver.implicitly_wait(30)
  4.  
  5. driver.get("http://www.baidu.com")
  6. driver.save_screenshot('baidu.png')
  7. driver.get_screenshot_as_file('baidu2.png')
  1.  

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. SQL易错锦集

    1.LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引 ...

  2. Linux中权限控制ACL命令

    很多小伙伴觉得,Linux的权限管理命令不就是chown和chmod命令吗,什么时候有了ACL了? 什么是ACLACL是访问控制列表(Access Control List)的缩写,主要的目的是在提供 ...

  3. Guava源码阅读-base-Strings

    package com.google.common.base; 今天阅读的是Srings类,这在程序中经常使用. 比如判断字符串是否为空,我们在之前用jdk方法判断是会用下面这个判断语句. if( i ...

  4. Thinkphp 使用小结

    分页中带查询参数 ...->paginate(15,false,['query'=>request()->param()]); 队列后台自动开启运行 nohup php think ...

  5. Linux文件属性之用户和组基础知识介绍

    一.Linux多用户多任务介绍 Linux/Unix 是一个多用户.多任务的操作系统:在讲Linux账号及账号组管理之前,我们先简单了解多用户.多任务操作系统的基本概念. 1.1Linux单用户多任务 ...

  6. [Comet OJ - Contest #6 D][48D 2280]另一道树题_并查集

    另一道树题 题目大意: 数据范围: 题解: 这个题第一眼能发现的是,我们的答案分成两种情况. 第一种是在非根节点汇合,第二种是在根节点汇合. 尝试枚举在第几回合结束,假设在第$i$回合结束的方案数为$ ...

  7. 跨域以及WebService对跨域的支持

    无耻收藏该博主的成果啦!https://www.cnblogs.com/yangecnu/p/introduce-cross-domain.html 通过域验证访问WebService:https:/ ...

  8. SetIcon(m_hIcon, TRUE);的作用

    SetIcon(m_hIcon, FALSE);// Set small icon 这条语句,程序显示时,左上角就会显示定义了的图标,生成的EXE程序也显示了这个图标 SetIcon(m_hIcon, ...

  9. c++学习笔记之多态和虚函数

    有了虚函数,基类指针指向基类对象时就使用基类的成员(包括成员函数和成员变量),指向派生类对象时就使用派生类的成员.换句话说,基类指针可以按照基类的方式来做事,也可以按照派生类的方式来做事,它有多种形态 ...

  10. DashBoard-身份验证

    dashboard1.7.1版本之后,新增了用户登录认证的功能. 默认dashboard会跳转到登录页面: 我们可以看到dashboard提供了Kubeconfig和token两种登录方式,我们可以直 ...