python selenium(上)

selenium

  • selenium文档 —— https://selenium-python.readthedocs.io/api.html;https://selenium-python-zh.readthedocs.io/en/latest/locating-elements.html

selenium介绍

  • selenium是一个web自动化测试工具,它可以直接运行在浏览器上,支持所有主流的浏览器,让浏览器自动加载页面并获取数据,甚至截屏。
  • selenium需要配合浏览器使用,因此需要安装相应的插件(chrome举例,需要安装chromedriver)

selenium使用方法

Phantomjs使用

  • 无头浏览器 —— 一个完整的浏览器内核,包括js解析引擎,渲染引擎,请求处理等,但不包括显示和用户交互页面的浏览器
  • 调用方法:
    from selenium import webdriver
    变量 = webdriver.PhantomJS() —— 所有phantomjs内容里的变量均指此变量
get方法 —— 打开网址
  • 变量.get(‘url’) —— 打开网页
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('https://www.baidu.com')		# 打开百度
定位位置并输入内容
  • 定位位置变量 = 变量.find_element_by_id(‘id值’) —— 定位具体位置
  • 定位位置变量.send_keys(‘内容’) —— 输入具体内容
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('https://www.baidu.com')
location_tag = driver.find_element_by_id('kw')
location_tag.send_keys('python')
点击事件并查看当前请求的url地址
  • 定位位置变量 = 变量.find_elemnet_by_id(‘id值’) —— 定位要点击按钮的位置
  • 定位位置变量.click() —— 点击动作
  • 变量.current_url
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('https://www.baidu.com')
location_tag = driver.find_element_by_id('kw')
location_tag.send_keys('python')
button_tag = driver.find_element_by_id('su')
button_tag.click()
print(driver.current_url)	# https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=python&fenlei=256&rsv_pq=8ebf920e0003c573&rsv_t=3485hqqkxUucvK17daXRJ9p%2FmTl1EFU8rqol7qSRWefAdOTHqARqJI9xdRs&rqlang=cn&rsv_enter=0&rsv_dl=ib&rsv_sug3=6&rsv_btype=i&inputT=55&rsv_sug4=55
截屏
  • driver.save_screenshot(‘保存内容的文件名及后缀’)

chromedriver使用(edge使用)

  • 调用方法:
    from selenium import webdriver
    变量 = webdirver.Chrome() (变量 = webdriver.Edge()) —— 所有操作均需使用此变量,以下内容的变量均为此处获得
打开浏览器、打开网页、关闭网页、退出程序
from selenium import webdriver
import time
drive = webdriver.Edge()
drive.get('https://www.baidu.com') 		# 打开浏览器并打开www.baidu.com网页
time.sleep(3)

drive.close()	# 关闭网页,如果网页只有一个则关闭浏览器
time.sleep(1)

drive.quit()	# 关闭浏览器并退出驱动程序

定位元素

  • 调用方法:
    1. 第一种方法(通过id定位举例)
      form selenium import webdriver
      变量 = webdriver.Edge()
      变量.get(‘url’)
      变量.find_element_by_id(‘id值’)

    2. 第二种方法(通过id定位举例)
      form selenium import webdriver
      form selenium.webdriver.common.by import By
      变量 = webdriver.Edge()
      变量.find_element(By.ID, ‘id值’)

方法含义
find_element_by_id(‘id值’)根据id属性值来查找某个元素
find_element_by_class_name(‘class值’)根据class属性值来查找某个元素
find_element_by_name(‘name值’)根据name属性值来查找某个元素
find_element_by_tag_name(‘标签名’)根据标签名来查找元素
find_element_by_xpath(‘xpath路径’)根据xpath语法来获取元素
find_element_by_css_select(‘css选择器语法’)根据css选择器语法来获取元素

注意:1、find_element是获取第一个满足条件的元素,find_elements是获取所有满足条件的元素。2、如果定位的元素属性值出现空格,可以通过xpath进行定位,或更改其他属性进行定位,或选取元素中的一部分(空格前内容和空格后内容)

操作表单元素

清除输入框内容

变量.clear()

操作按钮

变量.click()

操作下拉菜单
切换iframe
  • 介绍 —— 下拉菜单
  • 方法(两种方法):
    • 第一种(通过iframe内的id属性举例):
      变量.switch_to_frame(变量.find_element_by_id(‘id值’)

    • 第二种(通过iframe内的id属性举例)
      变量.swith_to.frame(变量.find_element_by_id(‘id值’)

select标签元素
  • 介绍 —— select元素不能被直接点击,因为点击后还需要选中元素(常用语下拉菜单)。这时selenium专门为select标签元素提供了一个类(from selenium.webdriver.support.ui import Select),将获取到的元素当成参数传到类中,创建这个对象,以后就可以使用这个对象进行选择了。
选择相应的值
  • 方法(两种方法):
    • 第一种:通过select标签元素内的class属性(举例)选择值
      from selenium.webdriver.support.ui import Select
      Select实例对象 = Select(变量.find_element_by_class_name(‘class值’)
      Select实例对象.select_by_value(‘需要选定的值’)

    • 第二种:通过select标签元素内的下标索引选择值
      from selenium.webdriver.support.ui import Select
      Select实例对象 = Select(变量.find_element_by_class_name(‘class值’)
      Select实例对象.select_by_index(‘索引值(从0开始)’)

操作非select标签
  • 操作步骤
    1. 定位需要操作下拉菜单的标签(通过id标签举例)
      下拉菜单标签变量 = 变量.find_element_by_id(‘id值’)

    2. 点击标签
      下拉菜单标签变量.click()

    3. 确定选择值(通过xpath路径举例)
      选择值变量 = 变量.find_element_by_xpath(‘xpath路径’)

    4. 点击标签
      选择变量值.click()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值