热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

selenium入门(二)

sel

    第一篇简单地介绍了一下如何用python打开一个浏览器,但没有详细说到安装的方法,这里简单补充一下。

    1)Google浏览器,我们只需安装后把Google浏览器的驱动放到python安装目录下即可如下图

   2)对于无界面PhantomJs浏览器,我们只需找一个目录把它解压后,找到它的bin目录然后把路径复制配到系统的环境变量即可。

bin目录

环境变量:



    进入正题前想向做测试的朋友安利一波一款脚本语言----perl。如果有打算做后台测试或者涉及后台开发的朋友可以了解一下,在linux写一些关于连数据库的脚本,做一些数据对比或修复我觉得perl比python更方便。

    面介绍了如何驱动浏览器,今天就来实操几个我认为还比较重要的函数。一开始对这些函数有点印象就可以,以后用多了就自然背下来了

页面请求操作

1.driver.get(url)  请求某个url对应的响应

2.refresh()  刷新页面操作

3.back()  回退到之前的页面

4.forward()  前进到之后的页面




获取断言信息的操作

1.current_url 获取当前访问页面url

2.title  获取当前浏览器标题

3.get_screenshot_as_png()  保存图片 比较少用,在selenium2中它返回一个二进制的数据需要用写文件的操作保存

4.get_screenshot_as_file(file)   直接保存 #常用测试完成后截图保存记录

5.page_source    网页源码 #常用于爬虫

元素的定位


1.直接调用型(推荐方式)

driver.find_element_by_xxx(value)

2.使用By类型(需要导入By)

from selenium.webdriver.common.by import By

driver.find_element(By.xxx,value)

    元素定位有8种,但我觉得只需要熟悉使用xpath或是css其中的一种就可以解决百分之90的问题(可能我遇到太低端了)。其它了解一下就可以,当然大神都是精通8种的.

driver.find_element_by_id(value)   #id属性值定位 
driver.find_element_by_name(value)  #name属性值定位 
driver.find_element_by_class_name(value)#class属性值定位 
driver.find_element_by_tag_name(value) #标签名属性值定位
driver.find_element_by_link_text(value)  #链接的文本 
driver.find_element_by_partial_link_text(value)#模糊匹配链接的文本 
driver.find_element_by_xpath(value)  #xpath路径 
driver.find_element_by_css_selector(value)#css选择器定位


    具体用法就不一一列举了,我提供的视频学习资料有详解.这里的介绍只是把视频中的一些重点指出并写成笔记方便日后查阅。



元素的操作

1)点击和输入

点击操作

element.click()

清空/输入操作(只能操作可以输入文本的元素)

element.clear() 清空输入框

element.send_keys(data) 输入数据

2)提交操作

element.submit()

3)获取元素信息

获取文本内容(既开闭标签之间的内容)

element.text

获取属性值(获取element元素的value属性的值)

element.get_attribute(value)

获取元素尺寸(了解)

element.size

获取元素是否可见(了解)

element.is_dispalyed()

    点击和输入数据必须掌握,其余用到地方不多。下一节会把这些函数运用起来做一个简单的自动填写汉堡王客户调查领礼物的小程序.以后吃汉堡王就可以快速免费加薯条了





推荐阅读
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • HTML基础入门指南
    本文将深入浅出地介绍HTML的基础知识,包括其定义、开发工具、制定机构、特性、基本标签及更多实用内容。 ... [详细]
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
  • 本文介绍了如何利用Python进行批量图片尺寸调整,包括放大和等比例缩放。文中提供了详细的代码示例,并解释了每个步骤的具体实现方法。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 鼠标悬停出现提示信息怎么做
    概述–提示:指启示,提起注意或给予提醒和解释。在excel中会经常用到给某个格子增加提醒信息,比如金额提示输入数值或最大长度值等等。设置方式也有多种,简单的,仅为单元格插入批注就可 ... [详细]
  • 精致小屏灰色风格苹果CMS v10模板,支持DIY主题管理系统
    探索一款专为影视站设计的苹果CMS v10模板,具备强大的主题管理系统和500多个设置项,无需二次开发即可轻松配置。下载地址:https://www.mytheme.cn/maccms/244.html,演示地址:http://demo.mytheme.cn/index.php?id=244。 ... [详细]
  • 本文详细介绍了如何在Kendo UI for jQuery的数据管理组件中,将行标题字段呈现为锚点(即可点击链接),帮助开发人员更高效地实现这一功能。通过具体的代码示例和解释,即使是新手也能轻松掌握。 ... [详细]
  • 在使用 Vue CLI 创建的项目中,引入样式模块(CSS Module)后,发现类名被自动修改。本文将详细解释这一现象并提供解决方案。 ... [详细]
author-avatar
lovely夏的宠儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有