selenium 自动化测试框架学习笔记

这篇具有很好参考价值的文章主要介绍了selenium 自动化测试框架学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 环境配置

1.安装命令

pip install selenium == 4.9.1  -i https://pypi.tuna.tsinghua.edu.cn/simple

下载驱动:

安装完 selenium 后,还需要安装使用 selenium 控制的浏览器需要的驱动。
谷歌驱动下载地址: https://googlechromelabs.github.io/chrome-for-testing/#stable
驱动下载完成后将文件移动到系统环境变量中:
MacOS :将文件移动到 /usr/local/bin 目录
Windows :将文件移动到python 安装目录下
from selenium import webdriver
browser = webdriver . Chrome ()

 注意:驱动文件是要和python放到一起的,一个目录下,

2.获取需要操作的浏览器对象

browser = webdriver.Chrome()   

3.加载指定的页面

browser.get('需要访问的url')

 当get多个页面时,浏览器会在一个标签页中,按照顺序至上往下按照顺序切换,不会创建新的标签页

4.截屏

browser.save_screenshot('图片名称')

5.获取页面源代码

html = browser.page_source()

6.查看cookies

print(browser.get_cookies()

7.获取指定元素

browser.find_element(By.ID,‘元素id值’).send_keys('填入内容')

8.获取多个元素

browser.find_elements()

9.点击“百度一下”

find_element(By.Id,"su"). click()

为了看到效果,我们可以增加time.sleep(4)让运行的慢一点

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

browser = webdriver.Chrome()

browser.get('https://www.baidu.com')
# browser.save_screenshot('百度首页.png')
time.sleep(3)
browser.find_element(By.ID,"kw").send_keys("java")
time.sleep(5)
browser.find_element(By.ID,'su').click()
time.sleep(5)

10.查看经过处理之后,本页面最后显示的url,如果有302的话,那么就是302之后的url

browser .current_url

11.关闭页面

当浏览器只有1个页面时,此操作会关闭浏览器退出

browser .close()

12.通过js脚本打开新标签页

 会创建新的标签页进行访问网站

js = Windows.open("https://www.sogou.com")

browser.execute_script(js)

13.切换标签页

browser.switch_to.window(brwser.window_handles[0])

14.让浏览器退出

如果selenium打开了很多

browser.quit()

 

import time
from selenium import webdriver

browser= webdriver.Chrome()
browser.get('https://movie.douban.com/top250')
time.sleep(3)
# 打开淘宝
browser.get("http://login.taobao.com")
time.sleep(3)
# 打开搜狗
js = "window.open('http://www.sogou.com')"
browser.execute_script(js)
time.sleep(3)
# 切换到第1个标签页
browser.switch_to.window(browser.window_handles[0])
time.sleep(3)
browser.switch_to.window(browser.window_handles[1])
time.sleep(4)
# 关闭第2个标签页
browser.close()
time.sleep(3)
browser.quit()
time.sleep(3)

元素定位方法

1.元素定位的基本使用方法

在定位元素时,需要借助selenium框架提供的定位工具来元素定位,需要导入

from  selenium.webdriver.common.by import By

 2.单个节点(返回一个对象)

find_element(By.ID,'定位规则')    #通过id查找

find_element(By.XPATH,'定位规则')#通过XPATH语句

find_element(By.NAME,'定位规则')

find_element(By.LINK_TEXT,'定位规则')

find_element(By.PARTIAL_LINK_TEXT,'定位规则')

find_element(By.TAG_NAME,'定位规则')

find_element(By.CLASS_NAME,'定位规则')

find_element(By.CSS_SELECTOR,'定位规则')  #通过css选择器查找  ‘#ww’ id为ww

                                                                                #通过css选择器查找  ‘.word’ class为word

 

3.多个节点(返回的是一个列表)

find_elements(By.ID,'定位规则')  #通过id查找

find_elements(By.NAME,'定位规则')  #通过XPATH语句

find_elements(By.XPATH,'定位规则')

find_elements(By.LINK_TEXT,'定位规则')

find_elements(By.PARTIAL_LINK_TEXT,'定位规则')

find_elements(By.TAG_NAME,'定位规则')

find_elements(By.CLASS_NAME,'定位规则')

find_elements(By.CSS_SELECTOR,'定位规则')  #通过css选择器查找  ‘#ww’ id为ww

                                                                                #通过css选择器查找  ‘.word’ class为word

注意点:

find_element 和find_elements的区别是:前者返回的是一个对象而后者是一个列表

by_link_text和by_partial_link_text 的区别:前者匹配全部文本 而后者包含部分文本

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

browser= webdriver.Chrome()

browser.get('http://news.baidu.com/')

ret = browser.find_element(By.ID,'ww')
ret_1 =browser.find_element(By.CSS_SELECTOR,'#ww')
ret_2 =browser.find_element(By.CSS_SELECTOR,'.word')
ret_3 =browser.find_element(By.XPATH,'//input[@class="word"]')
print(ret,ret_1 ,ret_2 ,ret_3 )
time.sleep(3)

js = "windows.open('https://movie.douban.com/top250')"
browser.execute_script(js)
time.sleep(3)

ret_4 = browser.find_elements(By.CSS_SELECTOR ,'.item')
print(ret_4)

time.sleep(10)

browser.quit()

selenium框架的其他方法

1.提取标签内容与属性值

获取文本:

element.text

获取属性值:

element.get_attribute("href")

处理cookie

通过driver.get_cookies()能够获取所有的cookie

cookie转dict

cookie_list = browser.get_cookies()

整理为requests等需要的字典方式,因为浏览器在发送新请求时携带的cookie只有name、value

所以此时提取的也只有name、value,其他的不需要

cookie_dict={x["name"]:x["value"] for x in cookie_list}

print(cookie_dict)

删除一条cookie

browser.delete_cookie("CookieName")

删除所有的cookie

browser.delete_all_cookies()

 添加cookie

browser.add_cookie{"name":"银子","address":"长沙"}文章来源地址https://www.toymoban.com/news/detail-817736.html

到了这里,关于selenium 自动化测试框架学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Selenium浏览器自动化测试框架详解_selenium 测试框架介绍

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新软件测试全套学习资料》

    2024年04月25日
    浏览(56)
  • Selenium+Pytest自动化测试框架

    selenium自动化+ pytest测试框架 本章你需要 一定的python基础——至少明白类与对象,封装继承 一定的selenium基础——本篇不讲selenium,不会的可以自己去看selenium中文翻译网 测试框架有什么优点呢: 代码复用率高,如果不使用框架的话,代码会很冗余 可以组装日志、报告、邮件

    2024年02月07日
    浏览(66)
  • Python + selenium 自动化测试框架

    项目自动化测试框架设计为4层 1.基础层(通用层) 基础层: 将通用,重复性比较高的代码封装到这里。 写通用的代码的。 其他3层想要的话,就可以直接调用。 例如: 读取测试数据的代码,读取配置信息的代码;截图的代码的,定位元素的代码等等 2.功能层(页面层) 功

    2023年04月13日
    浏览(46)
  • Selenium4自动化测试框架

    Selenium 介绍 Selenium 是目前用的最广泛的 Web UI 自动化测试框架,核心功能就是可以在多个浏览器上进行自动化测试,支持多种编程语言,目前已经被 google,百度,腾讯等公司广泛使用。 1、配置 google 驱动的环境变量,如果不配置需要在代码中指定驱动位置。 2、eclipse 中导入

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

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

    2024年02月07日
    浏览(78)
  • Selenium+python怎么搭建自动化测试框架、执行自动化测试用例、生成自动化测试报告、发送测试报告邮件

    本人在网上查找了很多做自动化的教程和实例,偶然的一个机会接触到了selenium,觉得非常好用。后来就在网上查阅各种selenium的教程,但是网上的东西真的是太多了,以至于很多东西参考完后无法系统的学习和应用。 以下整理的只是书中自动化项目的知识内容,介绍怎么搭

    2024年02月05日
    浏览(67)
  • selenium测试框架快速搭建(UI自动化测试)

    一、介绍         selenium目前主流的web自动化测试框架;支持多种编程语言Java、pythan、go、js等;selenium 提供一系列的api 供我们使用,因此在web测试时我们要点页面中的某一个按钮,那么我们只需要获取页面,然后根据id或者name找到对应的按钮,然后执行click操作就可以完成

    2024年02月02日
    浏览(71)
  • Python + selenium 自动化测试框架详解

    项目自动化测试框架设计为4层 1.基础层(通用层) 基础层: 将通用,重复性比较高的代码封装到这里。 写通用的代码的。 其他3层想要的话,就可以直接调用。 例如: 读取测试数据的代码,读取配置信息的代码;截图的代码的,定位元素的代码等等 2.功能层(页面层) 功

    2024年02月03日
    浏览(51)
  • Selenium+Pytest自动化测试框架详解

    selenium自动化+ pytest测试框架 本章你需要 一定的python基础——至少明白类与对象,封装继承; 一定的selenium基础——本篇不讲selenium,不会的可以自己去看selenium中文翻译网 测试框架有什么优点 代码复用率高,如果不使用框架的话,代码会很冗余 可以组装日志、报告、邮件等

    2024年02月08日
    浏览(98)
  • 自动化测试框架selenium之webdriver

    对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象,一个对象有很多的属性,我们可以通过这些属性找到对象。 注意:不管用那种方式,必须保证页面上该属性的唯一性 webdriver 提供了一系列的对象定位方法,常用的有以下几种 id name class nam

    2024年02月12日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包