美文网首页
【Python】04-selenium使用总结

【Python】04-selenium使用总结

作者: b861a75d2a7d | 来源:发表于2018-05-30 00:30 被阅读8次

1. 简介

  • Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。换句话说叫 Selenium 支持这些浏览器驱动。

2.安装

pip3 install selenium

3.下载驱动

4.导入方法

#导入方法
from selenium import webdriver

5.初始化浏览器

# 1.初始化浏览器为chrome浏览器
browser = webdriver.Chrome()

# 2. 初始化浏览器为firefox浏览器
browser = webdriver.Firefox()

# 3. 初始化浏览器为无界面的chrome浏览器
option = webdriver.ChromeOptions()
option.add_argument("headless")
driver = webdriver.Chrome(chrome_options=option)

6.页面交互

# 1.打开指定URL页面
driver.get("https://www.baidu.com/")

# 2.清空输入框
input.clear( )

# 3.在输入框中输入信息
input.send_keys( "关键词" )

# 4. 点击按钮
submit.click( )

# 5.获取页面源码
driver.page_source

# 6.弹窗处理
alert = driver.switch_to_alert()

# 7.关闭浏览器
driver.quit( )

# 8. cookie处理
#添加cookie
cookie = {‘name’ : ‘foo’, ‘value’ : ‘bar’}
driver.add_cookie(cookie)
#获取cookie
driver.get_cookies()

7.定位页面元素

#方法一:定位单个指定元素

#根据id标签定位
• driver.find_element_by_id(" ")
#根据name标签定位
• driver.find_element_by_name(" ")
#根据xpath定位
• driver.find_element_by_xpath(" ")
#根据文字信息定位
• driver.find_element_by_link_text(" ")
#根据链接文字信息定位
• driver.find_element_by_partial_link_text(" ")
根据tag名称定位
• driver.find_element_by_tag_name(" ")
#根据class标签定位
• driver.find_element_by_class_name(" ")
#根据css定位
• driver.find_element_by_css_selector(" ")


#方法二:定位多个元素(这些方法会返回一个列表):

• driver.find_elements_by_name(" ")
• driver.find_elements_by_xpath(" ")
• driver.find_elements_by_link_text(" ")
• driver.find_elements_by_partial_link_text(" ")
• driver.find_elements_by_tag_name(" ")
• driver.find_elements_by_class_name(" ")
• driver.find_elements_by_css_selector(" ")

#方法三:find_element/find_elements

#导入方法:
from selenium.webdriver.common.by import By

• driver.find_element(By.CLASS_NAME, " ")
• driver.find_element(By.CSS_SELECTOR, " ")
• driver.find_element(By.ID, " ")
• driver.find_element(By.LINK_TEXT, " ")
• driver.find_element(By.NAME, " ")
• driver.find_element(By.PARTIAL_LINK_TEXT, " ")
• driver.find_element(By.TAG_NAME, " ")
• driver.find_element(By.XPATH, " ")
==========================================================
• driver.find_elements(By.CLASS_NAME, " ")
• driver.find_elements(By.CSS_SELECTOR, " ")
• driver.find_elements(By.ID, " ")
• driver.find_elements(By.LINK_TEXT, " ")
• driver.find_elements(By.NAME, " ")
• driver.find_elements(By.PARTIAL_LINK_TEXT, " ")
• driver.find_elements(By.TAG_NAME, " ")
• driver.find_elements(By.XPATH, " ")

8.设置等待时间,判断页面是否加载完成

#导入方法:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

#设置浏览器等待时间
wait = WebDriverWait(driver, 10)


#设置期待条件

# 1.判断标题是否与期望的一致
• title =wait.until(EC.title_is((By.ID,'#id')))

# 2.判断标题是否包含什么
• title =wait.until(EC.title_contains((By.ID,'#id')))

# 3.指定元素加载完成
• title =wait.until(EC.presence_of_element_located((By.ID,'#id')))

# 4.判断元素是否加载完成
• title =wait.until(EC.presence_of_all_elements_located((By.ID,'#id')))

# 5.判断指定文本信息是否加载完成
• title =wait.until(EC.text_to_be_present_in_element((By.ID,'#id')))

# 6.判断指定元素的值是否加载完成
• title =wait.until(EC.text_to_be_present_in_element_value((By.ID,'#id')))

# 7.判断指定按钮可以点击
• title =wait.until(EC.element_to_be_clickable((By.ID,'#id')))



9.提交表单

#导入方法:
from selenium.webdriver.support.ui import Select

#选中下拉框中元素
select = Select(driver.find_element_by_name('name'))

##定位下拉框位置,3种选择方式

#根据索引值来选中
select.select_by_index(index)
#根据文本信息来选中
select.select_by_visible_text("text")
#根据值来选中
select.select_by_value(value)

##取消已经选择的元素
select = Select(driver.find_element_by_id('id'))
#全部取消
select.deselect_all()

#获取所有已经选中的元素
select = Select(driver.find_element_by_xpath("xpath"))
all_selected_options = select.all_selected_options
#获取所有可选选项
options = select.options

##提交表单
#点击指定按钮,提交表单
driverd .find_element_by_id("submit").click()
#自动搜索距离表单最近的按钮,然后点击按钮,提交表单
element.submit()


参考资料:

相关文章

  • 【Python】04-selenium使用总结

    1. 简介 Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,...

  • Python Openpyxl模块的应用

    Python_Openpyxl 浅谈(最全总结 足够初次使用) python_openpyxl_操作excel P...

  • Python3 subprocess

    总结: 如果你的应用使用的Python 2.4以上,但是是Python 3.5以下的版本,Python官方给出的建...

  • Anaconda零基础入门指南

    Anaconda 使用指南 参考文章:致Python初学者:Anaconda入门使用指南Anaconda使用总结 ...

  • selenium webdriver基于Python系列文章

    接selenium webdriver基于Python系列文章 总结2 使用remote WebDriver之前...

  • OpenCV-Python常用函数

    零、前言 这是一篇OpenCV-Python的使用总结,记录的是一些常用的OpenCV-Python函数及使用方法...

  • python进阶总纲

    对python的进阶,我想分为三个部分来总结: 1 语法 主要是对python语法的高阶使用总结,包括常用的库和p...

  • apply,map,applymap总结

    Python中apply,map,applymap总结 pandas中DataFrame 数据类型,使用map,a...

  • Anaconda使用总结

    Anaconda使用总结 原文出处:2016.7.19 PeterYuan 序 Python易用,但用好却不易,其...

  • 2018-05-25

    python 1.python中数组和矩阵乘法及使用总结 对数组的运算 矩阵求逆,转置,求迹

网友评论

      本文标题:【Python】04-selenium使用总结

      本文链接:https://www.haomeiwen.com/subject/rrbzjftx.html