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. SpringMVC深入浅出(一)

    1.Springmvc是什么 是一个表现层框架,用于接受请求及参数,响应请求回显数据. 2.SpringMVC处理流程 SpringMVC流程 1.  用户发送请求至前端控制器DispatcherSe ...

  2. Hack the 21LTR: Scene 1 VM (Boot to Root)

    靶机下载链接: https://www.vulnhub.com/entry/21ltr-scene-1,3/ 主机扫描: ╰─ nmap -p1-65535 -sV -sC -A  192.168.2 ...

  3. Android 项目优化(六):项目开发时优化技巧总结

    在之前我们讲了很多能够优化 Android 开发项目质量的方案,这些方案更多的是从一些比较专精的方向切入的,阐述的是一些比较重要且独立的优化方案. 本文我们将总结一下在日常开发过程中我们能够使用的一些 ...

  4. Android 中 MessageQueue 的 nativePollOnce

    Android SDK 中的事件循环已经是一个老生常谈的问题了, 像 Handler Looper MessageQueue 这几个类也是被大家研究透彻了. 但是再回头看以前自己的分析, 总感觉差点什 ...

  5. threejs 限制物件只能在指定平面上拖拽

    threejs提供有 DragController.js的例子来辅助拖拽 该例子可以在基于当前屏幕的x和y轴上拖拽物体,但是它不能影响z轴. 查看代码,可以在touchStart\mousedown下 ...

  6. webpack4配置学习(一)

    webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency gr ...

  7. bbbbbb

    Blazor 机制初探以及什么是前后端分离,还不赶紧上车? 标签: Blazor .Net 上一篇文章我发了一个 BlazAdmin 的尝鲜版,这一次主要聊聊 Blazor 是如何做到用 C# 来写前 ...

  8. Java时区问题

    Java时区相关 时间格式 UTC是以原子时计时,更加精准,适应现代社会的精确计时.不过一般使用不需要精确到秒时,视为等同.GMT是前世界标准时,UTC是现世界标准时.每年格林尼治天文台会发调时信息, ...

  9. JavaWeb学习——web.xml文件说明

    JavaWeb学习——web.xml文件说明 摘要:本文主要学习了web.xml文件的作用以及如果配置. 是什么 web.xml文件是用来在JavaWeb项目里面初始化配置信息的,比如:访问的首页.S ...

  10. Dynamics 365 Customer Engagement导入解决方案时出错:Microsoft.Crm.CrmException: Plug-in assembly does not contain the required types or assembly content cannot be updated.

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...