【python】之selenium模块,实现Web端自动化测试!【基础篇】

这篇具有很好参考价值的文章主要介绍了【python】之selenium模块,实现Web端自动化测试!【基础篇】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接调用浏览器,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏等。我们可以使用selenium很容易完成之前编写的爬虫,接下来我们就来看一下selenium的运行效果

一.安装环境

python+selenium+chrome

(1)python建议用python3及以上的版本

(2)selenium库这边我们使用pip接口进行安装

pip install selenium

pip接口详细说明可以看:https://blog.csdn.net/pengneng123/article/details/129556320

(3)这边推荐使用chrome浏览器,使用chrome浏览器则需要对应的驱动,下载链接如下:

http://chromedriver.storage.googleapis.com/index.html

找到与浏览器相对应的版本,32位即可驱动。

selenium.webdriver.common.by,python,python,selenium,自动化

selenium.webdriver.common.by,python,python,selenium,自动化

二.selenium库基础函数使用

1.webdriver.Chrome()

from selenium import webdriver


####实例化浏览器
driver = webdriver.Chrome()

输出如下:

selenium.webdriver.common.by,python,python,selenium,自动化

2.driver.get()  函数打开网页包含协议头

driver.get('https://www.baidu.com/')

3.driver.maximize_window() 函数实现最大化浏览器

4.driver.back() 函数实现后退操作

5.driver.forward() 函数实现前进操作

6.driver.refrensh() 函数实现刷新页面功能

7.driver.close() 函数实现关闭当前主窗口(主窗口:默认启动那个界面,就是主窗口)

8.driver.quit() 函数实现关闭driver对象启动的全部页面

9.driver.title 函数获取当前页面title信息

10.driver.current_url 函数获取当前页面url信息

三.selenium库定位八大方法

1.id定位方法

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()  ###实例化浏览器

driver.get('https://www.baidu.com/')  ###get打开浏览器

element = driver.find_element(By.ID, "kw").send_keys('搜索')  ###id定位方法,kw=id, 搜索为输入

selenium.webdriver.common.by,python,python,selenium,自动化

 输出:

selenium.webdriver.common.by,python,python,selenium,自动化

2.name定位方法

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

###name定位方法  name='wd',1111为输入的内容
username = driver.find_element(By.NAME, 'wd').send_keys('1111')

selenium.webdriver.common.by,python,python,selenium,自动化

 输出:

selenium.webdriver.common.by,python,python,selenium,自动化

3.class_name定位方法

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')


###class_name定位方法,class = 's_ipt',输入123456
Class = driver.find_element(By.CLASS_NAME, 's_ipt').send_keys('123456')

 selenium.webdriver.common.by,python,python,selenium,自动化

输出:

selenium.webdriver.common.by,python,python,selenium,自动化

4.tag_name定位方法

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

###
tel = driver.find_element(By.TAG_NAME, 'input').send_keys('1111')

 一般标签重复性过高,要精确定位,都不会选择tag_name !

5.link_text定位方法,click单击打开

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

###该⽅法只针对超链接元素(a 标签),并且需要输入超链接的全部⽂本信息
Text = driver.find_element(By.LINK_TEXT, '新闻').click()#

selenium.webdriver.common.by,python,python,selenium,自动化

输出:

selenium.webdriver.common.by,python,python,selenium,自动化

6.partial_link_text定位方法

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

###partial_link_text定位方法,click单击打开,可以使用精准或模糊匹配
username = driver.find_element(By.PARTIAL_LINK_TEXT, '新闻').click()

7.Xpath定位方法

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')


###Xpath定位方法,称为相对路径定位法,运用copy xpath复制相对路径
username = driver.find_element(By.XPATH, '//*[@id="kw"]').send_keys('1111')

selenium.webdriver.common.by,python,python,selenium,自动化

 输出:

selenium.webdriver.common.by,python,python,selenium,自动化

8.CSS定位法

常用策略:
1、id 选择器
     语法:#id属性值
2、class 选择器
     语法:.class属性值(如果使⽤具有多个值的 class 属性,则需要传入全部的属性值 语法:[class="全部属性值"])
3、属性选择器
     语法1:[属性名=“属性值”]
     语法2:标签名[属性名=“属性值”]
4、标签选择器
     语法:标签名 如input,button
5、层级选择器
     父子层级关系:父层级策略 > 子层级策略 (也可以使用空格连接上下层级策略)
     祖辈后代层级关系:祖辈策略 后代策略
     提示:>与空格的区别,大于号必须为子元素,空格则不用。

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')


###id属性值
ID = driver.find_element(By.CSS_SELECTOR, '#kw"]').send_keys('11111')

###class属性值
Class = driver.find_element_by_css_selector('[class="s_ipt"]').send_keys('1111')

###语法属性
user = driver.find_element_by_css_selector('input[id="kw"]').send_keys('1111')
user = driver.find_element_by_css_selector('[name="wd"]').send_keys('1111')

###语法层级选择属性
user = driver.find_element_by_css_selector('#s_kw_wrap>input').send_keys('1111')
user = driver.find_element_by_css_selector('#form input').send_keys('1111')

driver.close()

 八大定位方法就如上所述。

四.实例演示

1.元素的操作方法

(1)、.send_keys() # 输入方法

(2)、.click() # 点击方法

(3)、.clear() # 清空方法

2.实际操作

(1)进入百度搜索(2)搜索栏输入python(3)百度一下(3)选择python百度百科进入

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

###进入百度搜索
driver.get('https://www.baidu.com/')

###找到输入框,输入python
element = driver.find_element(By.ID, "kw").send_keys('python')

###单击鼠标开始搜索
element = driver.find_element(By.ID, "su").click()

###找到百度百科,单击鼠标进入
username = driver.find_element(By.XPATH, '//*[@id="2"]/div/div/h3/a').click()

后续对于selenium库的更多使用,下期再继续介绍啦!

@Neng文章来源地址https://www.toymoban.com/news/detail-742301.html

到了这里,关于【python】之selenium模块,实现Web端自动化测试!【基础篇】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python+pytest+selenium+PO+allure+DDT实现web自动化测试

    python:编程语言 pytest:独立的、全功能的python单元测试框架 selenium:用于web应用程序测试的工具 allure:测试报告展示 ddt:数据驱动 1.1 python解释器 3.10版本 1.2 pycharm集成开发环境 社区版 下载浏览器驱动,浏览器驱动版本要与浏览器版本一致。 下载地址: Chrome:http://npm.ta

    2024年02月02日
    浏览(35)
  • 【Web项目实战】从零开始学习Web自动化测试:用Python和Selenium实现网站登录功能

    B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠 https://www.bilibili.com/video/BV1ua4y1V7Db 目录 1.环境搭建

    2024年02月06日
    浏览(54)
  • python 自动化测试之Selenium 模块

    官网:https://www.selenium.dev/zh-cn/ 一、安装 二、声明浏览器 三、配置项 常用配置参数 其他配置项 四、常用方法 五、常用属性 switch_to属性 六、操作元素 定位元素 方法和属性 操作下拉框元素 七、模拟鼠标操作 八、键盘操作 八、延时等待 强制等待 隐式等待 显式等待 十、其

    2024年02月13日
    浏览(32)
  • 〖Python WEB 自动化测试实战篇⑨〗- 实战 - selenium 实现浏览器标签页的切换

    订阅 Python全栈白宝书-零基础入门篇 可报销! 白嫖入口-请点击我。 推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏, 免费阶段订阅数量4300+ , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:加入社区的小伙

    2023年04月08日
    浏览(48)
  • 【自动化测试】基于Selenium + Python的web自动化框架

    Selenium是一个基于浏览器的自动化工具,她提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid:  1、Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,p

    2024年02月07日
    浏览(45)
  • Python__模块(OPT-自动化-Web端)__selenium

    自动化测试(Web端) pip install selenium 定位1个元素 element 定位多个元素 elements 获取元素属性 element.get_attribute(name) 元素id定位 By.ID 元素class定位 By.CLASS_NAME 元素name定位 By.NAME 完整超链接定位(链接文本内容) By.TAG_NAME css选择器进行定位 By.CSS_SELECTOR xpath表达式定位 By.XPATH 设置浏览

    2024年02月03日
    浏览(25)
  • Python+selenium,轻松搭建 Web 自动化测试框架

    在程序员的世界中,一切重复性的工作,都应该通过程序自动执行。 「自动化测试」就是一个最好的例子。 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业务要求,只能被企业逐步裁员淘汰。 「自动化测试

    2024年02月10日
    浏览(84)
  • 基于Selenium+Python的web自动化测试框架

    一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并把录制的操作以多种语言

    2024年02月02日
    浏览(42)
  • 基于Selenium+Python的web自动化测试框架详解

    目录 一、什么是Selenium? 二、自动化测试框架 三、自动化框架的设计和实现 四、需要改进的模块 五、总结 Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selen

    2024年02月09日
    浏览(35)
  • selenium+python做web端自动化测试框架实战

    最近受到万点暴击,由于公司业务出现问题,工作任务没那么繁重,有时间摸索selenium+python自动化测试,结合网上查到的资料自己编写出适合web自动化测试的框架,由于本人也是刚刚开始学习python,这套自动化框架目前已经基本完成了所以总结下编写的得失,便于以后回顾温

    2024年02月14日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包