1、打开和关闭浏览器

 打开浏览器
   driver=webdriver.Ie()
   driver=webdriver.Chrome()
   driver=webdriver.Firefox()
关闭浏览器
   driver.close()
 关闭浏览器以及浏览器驱动程序
   driver.quit()

2、打开 Url

 driver.get("url 地址")

3、切换框架/窗口(使用 switch_to 包)

 定位到当前聚焦的元素上
   driver.switch_to.active_element()

切换到 alert 弹窗
   driver.switch_to.alert()

1
2
3
4
5
6
7
8
# 获取alert对话框
dig_alert = driver.switch_to.alert
time.sleep(1)
# 打印警告对话框内容
print(dig_alert.text)
# alert对话框属于警告对话框,我们这里只能接受弹窗
dig_alert.accept()
time.sleep(1)

 切换到某个 frame
   driver.switch_to.frame(index或 name)

index从0开始

切换到主页面
   driver.switch_to.default_content()

 切换到上一层的 frame
   driver.switch_to.parent_frame()

切换窗口
   driver.switch_to.window(handle)

如何获取handle?

通过driver.window_handles  方法获取当前浏览器所有窗口的handle

通过循环切换窗口判断标题的方法来确定当前窗口是否为目标窗口

保留当前窗口handle:driver.current_window_handle

4、页面元素的属性和方法

 获得网页标题
   driver.title()

 获得当前窗口地址栏URL
   driver.current_url

 获得页面元素的文本值(属于属性)
   对象.text

 获得指定属性的值
   对象.get_attribute("属性名")

获取元素对应的HTML片段

获取整个web元素的HTML片段

element.get_attribute("outerHTML")

获取web元素内部子元素的HTML片段

element.get_attribute("innerHTML")

 Select(对象)的操作
  需要导入包:from selenium.webdriver.support.select import Select

 根据索引选择元素
   select_by_index

 根据文本选择元素
   select_by_visible_text

 取消所有选项
    deselect_all()

 取消对应 index 选项
   deselect_by_index()

 取消对应 value 选项
   deselect_by_value()

 取消对应文本选项
   deselect_by_visible_text()

 返回第一个选项
   first_selected_option()

 返回所有的选项
   all_selected_options()

 用于键盘输入数据
   element.send_keys("数据")

 点击元素(支持单选按钮、 复选框、 命令按钮)
   element.click()

5、刷新页面,前进,后退

driver.refresh()

driver.forward()

driver.back()

6、截屏:

截取整个页面:driver.get_screenshot_as_file(img_path)

截取单个元素:  web_element screenshot(img_path)

# img_path是图片路径,类型str

7、改变窗口大小

 将窗口最大化
   driver.maximize_window()

 将窗口最小化
   driver.minimize_window()

获取窗口大小

size = driver.get_window_size()

 改变窗口大小(传递宽度和高度,单位是像素)

driver.set_window_size(1100,size['height'])

8、滚动屏幕

js语言:window.scrollBy(250,0) 就是横向滚动250个像素

selenium里面使用js代码

driver.execute_script('window.scrollBy(200,0)')

Selenium常见方法的更多相关文章

  1. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  2. Python爬虫突破封禁的6种常见方法

    转 Python爬虫突破封禁的6种常见方法 2016年08月17日 22:36:59 阅读数:37936 在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长.今天大众好像更倾向于用 ...

  3. Selenium switch_to方法

    在web应用自动化测试中,点击一个链接或者按钮会打开一个新的浏览器窗口,会出现多个窗口实例.默认情况下的焦点在主窗口(父窗口),如果要对子窗口进行操作,就需要首先切换到子窗口. Selenium We ...

  4. C#图片处理常见方法性能比较

    C#图片处理常见方法性能比较 来自:http://www.cnblogs.com/sndnnlfhvk/archive/2012/02/27/2370643.html   在.NET编程中,由于GDI ...

  5. window对象中的常见方法

    <body><!-- window对象中的常见方法--><script type="text/javascript"> var timeid; ...

  6. python socket 常见方法及 简单服务/客户端

    socket 常见方法: 补充说明:what is file descriptor? 文件描述符是什么? 参考(http://stackoverflow.com/questions/8191905/w ...

  7. VBS操作Excel常见方法

    VBS操作Excel常见方法 作者: 字体:[增加 减小] 类型:转载 时间:2009-11-13我要评论 VBS控制Excel常见方法,需要的朋友可以参考下. dim oExcel,oWb,oShe ...

  8. selenium常见的疑问和问题

    .确认(verifation)和断言(assert)有什么区别?  确认:当测试中的一个用例存在错误时,系统将会继续运行这些测试  断言:当测试中的一个用例存在错误时,系统将会退出当前用例  总而言之 ...

  9. UIPickerView常见属性、常见方法(包括代理方法和数据源方法)的一些说明

    一.UIPickerView 1.UIPickerView的常见属性 // 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id< ...

  10. jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)

    在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. [WebMethod] public static string SayHe ...

随机推荐

  1. Could not resolve dependency:peer swiper@“^5.2.0“ from vue-awesome-swiper@4.1.1

    在安装vue-awesome-swiper时报错: Could not resolve dependency:peer swiper@"^5.2.0" from vue-aweso ...

  2. 2019-2020-1 20199318《Linux内核原理与分析》第八周作业

    第7章 可执行程序工作原理 一.学习笔记 1.ELF 2.程序编译 3.连接与库 二.试验记录 1.开始先更新内核,再用test_exec.c将test.c覆盖掉 2.test.c文件中增加了exec ...

  3. drf从入门到飞升仙界 05

    反序列化类校验部分源码解析 # 反序列化校验,什么时候开始执行校验 视图类中的ser.is_valid(),就会执行校验,校验通过返回True,不通过返回false # 反序列化类校验的入口: ser ...

  4. vue3 微信支付和支付宝支付 H5和微信内置浏览器

    vue3微信支付和支付宝支付 // 判断是否为微信内置浏览器 let browser: any = navigator.userAgent.toLowerCase(); let isWechat: a ...

  5. CCF 201803-4 棋局评估

    一. 对抗搜索的适用范围 在博弈论题目中,如果决策双方的获胜条件是截然相反的,即一方要求得分越高越好,另一方要求得分越低越好,这时我们就可以用上对抗搜索算法. 二.对抗搜索的主要思想 对抗搜索的核心思 ...

  6. 使用Dapr和Tye启动服务

    自 2019 年开源以来,Dapr(Distributed Application runtime )已迅速成为非常流行的构建微服务的开源框架.它提供了分布式应用程序中常用的构建块和已打包的服务,例如 ...

  7. CSS中z-index的属性与使用

    z-index 属性指定一个元素的堆叠顺序. 拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面. Z-index 仅能在定位元素上奏效,z-index 进行定位元素(position:abso ...

  8. 为动态二级域名申请https的免费证书.

    前面已经讲过将nginx部署,并注册了免费的二级域名.但将网址发给儿子,儿子说微信已经不能打开http的网址了,所以一想还是研究一下https的证书申请. 网上有很多讲通过,acme的脚本来自动化申请 ...

  9. infoq上看视频1(持续更新)

    打破工程师思维 http://www.infoq.com/cn/presentations/break-engineer-thinking 百姓网人: 从技术走向产品的那点儿事 http://www. ...

  10. Liunx安装Docker

    1.更新yum包到最新 sudo yum update 2.卸载历史Docker,如果没有安装过,则跳过该步 sudo yum remove docker \ docker-client \ dock ...