selenium模块的基本操作

一.模拟浏览器

​ 谷歌、Firefox、Safari等浏览器

  • browser=webdriver.Chrome()
  • browser=webdriver.Firefox()
  • browser=webdriver.Safari()
  • browser=webdriver.Edge()
  • browser=webdriver.PhantomJS()

二.访问

上面模拟后的浏览器

browser.get('url')

三.定位网页元素

定位元素的方法:

  • driver.find_element_by_xxx(value)

  • from selenium.webdriver.common.by import By driver.find_element(By.ID, value)

一、元素定位:用于完成元素定位的定位方式:一定要使用变量接收定位到的元素

​ a = driver.find_element_by_xxx()

  • 1 通过id属性进行定位:driver.find_element_by_id(id)

  • 2 通过name属性进行定位:driver.find_element_by_name(name)

  • 3 通过class属性进行定位:driver.find_element_by_class_name(class_name)

  • 4 通过标签名进行定位:driver.find_element_by_tag_name(value)

    使用条件:

    • 1 要定位的标签是该页面唯一该类标签

    • 2 要定位的标签是该类标签的第一个

  • 5 通过a标签文本信息定位(完整的文本):driver.find_element_by_link_text()

  • 6 通过a标签文本信息定位(部分文本)driver.find_element_by_partial_link_text()

  • 7 通过css规则进行定位:driver.find_element_by_css_selector()

  • 8 通过xpath定位:driver.find_element_by_xpath()

四.元素的操作

  • 元素名称.send_keys(value) 输入内容

  • 元素名称.clear() 清空用于有些输入的地方有默认值

  • 元素名称.click() 点击 主要用于按钮元素

  • 元素名称.submit() 提交

  • 按回车提交

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    browser = webdriver.Chrome()
    browser.get('https://www.baidu.com')
    input = browser.find_element_by_id('kw')
    input.send_keys('ywy')
    input.send_keys(Keys.ENTER)

五.传回元素内容

  • 元素名称.text: 获取文本
  • 元素名称.get_attribute(attribute):获取元素内属性attribute为标签属性
  • 元素名称.id :获取元素标签
  • 元素名称.location:获取元素名称
  • 元素名称.tag_name:获取元素标签名称
  • 元素名称.size:获取元素大小

六.浏览器的前进后退

  • 后退:browser.black()
  • 前进:browser.forward()

七.关闭

  • 关闭当前:browser.close()
  • 关闭所有:browser.quit()

八.简单的模拟百度搜索

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
input_data = browser.find_element_by_id('kw')
input_data.clear()
input_data.send_keys('ywy')
#input.send_keys(Keys.ENTER) 回车登入
enter = browser.find_element_by_id('su')
enter.click()

后续再补充其他的

深入selenium模块基础操作的更多相关文章

  1. selenium模块基础用法详解

    目录 selenium模块 官方文档 介绍 安装 有界面浏览器 无界浏览器 selenium+谷歌浏览器headless模式 基本使用 选择器 基本用法 xpath 获取标签属性 等待元素被加载 隐式 ...

  2. Android 蓝牙模块基础操作

    之前没怎么接触过蓝牙模块,在学习的过程中借鉴了很多前辈的经验.本次主要包含以下功能: 1.检测是否存在蓝牙模块 2.蓝牙的开启与关闭 3.与本机已配对的蓝牙设备 4.本机蓝牙可见性设置 5.扫描周围蓝 ...

  3. selenium 浏览器基础操作(Python)

    想要开始测试,首先要清楚测试什么浏览器.如何为浏览器安装驱动,前面已经聊过. 其次要清楚如何打开浏览器,这一点,在前面的代码中,也体现过,但是并未深究.下面就来聊一聊对浏览器操作的那些事儿. from ...

  4. python3使用selenium + Chrome基础操作代码

    selenium是Python的第三方库,使用前需要安装.但是如果你使用的是anaconda,就可以省略这个步骤,为啥?自带,任性. 安装命令: pip install selenium (一)使用s ...

  5. nltk模块基础操作

     几个基础函数 (1)搜索文本:text.concordance(word) 例如,在text1中搜索词”is”在文本中出现的次数以及上下文的词:text1.concordance("is& ...

  6. 第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求

    第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求 selenium模块 selenium模块为 ...

  7. 第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS

    第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 ...

  8. 二十九 Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求

    selenium模块 selenium模块为第三方模块需要安装,selenium模块是一个操作各种浏览器对应软件的api接口模块 selenium模块是一个操作各种浏览器对应软件的api接口模块,所以 ...

  9. 十六 web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS

    PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 也就是没有显示界面的浏览器,利用这个软件,可以获取到网址js加载的任何信息,也就是可以获取浏览器异步加载的 ...

随机推荐

  1. 【Java必修课】图说Stream中的skip()和limit()方法及组合使用

    1 简介 本文将讲解Java 8 Stream中的两个方法:skip()和limit().这两个方法是Stream很常用的,不仅各自会被高频使用,还可以组合出现,并能实现一些小功能,如subList和 ...

  2. Caffe源码-Blob类

    Blob类简介 Blob是caffe中的数据传递的一个基本类,网络各层的输入输出数据以及网络层中的可学习参数(learnable parameters,如卷积层的权重和偏置参数)都是Blob类型.Bl ...

  3. LeetCode刷题总结-二分查找和贪心法篇

    本文介绍LeetCode上有关二分查找和贪心法的算法题,推荐刷题总数为16道.具体考点归纳如下: 一.二分查找 1.数学问题 题号:29. 两数相除,难度中等 题号:668. 乘法表中第k小的数,难度 ...

  4. Java题库——Chapter17 二进制I/0

    Introduction to Java Programming 的最后一章,完结撒花!Chapter 17 Binary I/O Section 17.2 How is I/O Handled in ...

  5. C# read file to bytes,File.ReadAllFiles,File.Open(),BinaryReader

    using System; using System.Text; using System.IO; namespace ConsoleApplication15 { class Program { s ...

  6. Supermap/Cesium 开发心得----飞天动线的实现

    在实际开发中,我遇到这样的问题,只给了两地点的坐标,要求会出从A地到B地的在天上飞的那种动态线 本质上动线的效果就是构造实体Entity中的polyline来实现,设置好材质,颜色和运动频率 具体实现 ...

  7. Mac 安装nginx之后重启、停止、开启等操作

    操作系统:macOs High Sierra 10.13.6 1.我用的homebrew安装的nignx1.15.9,安装完成之后会有下面的提示: 网站根目录在:/usr/local/var/www ...

  8. DFA敏感词过滤实现

    package test.java.com.odianyun.util.sensi; import java.util.*; /** * 敏感词处理工具 - DFA算法实现 * * @author s ...

  9. 从微信小程序开发者工具源码看实现原理(三)- - 双线程通信

    文章概览: 引言 小程序开发者工具双线程通信的设计 1.on: 用来收集小程序开发者工具触发的事件回调 2.invoke:以api方式调用开发工具提供的基础能力 3.publish:用来向Appser ...

  10. vue路由进阶

    一..全局路由前置守卫 1.首先看一下文档结构 Dashboard和Login是一级页面  home about mine是在Dashboard下的二级页面 2.router.js代码如下 impor ...