selenium 自动化测试课上实操指南1——百度搜索

news2025/1/14 18:17:43

1.环境准备

下面的所有资源可以从超星班级资料中下载,机房的同学在收到的文件夹中可以找到文件

非本校同学,免费加入学银在线课程,就可以在资料 根目录 >  02 课件新 >  week09 web自动化测试02 里下载本次实操资料

1)安装java环境

我的是java version "1.8.0_241",理论上版本高一些是应该没有问题的

因为我们使用java编程,所以你的计算机上,机房已经有了可跳过此步骤

2)安装eclipse ,

机房已经有了可跳过此步骤,自己的计算机可以自行安装

3)下载selenium  webdriver

已经发给大家,大家收到的文件夹中有

使用自己电脑的同学,到超星班级资料下载 4_selenium-server-4..jar,大家也可以根据需要去下载

4)下载安装浏览器和浏览器驱动

注意浏览器驱动的类型和版本号需要和你计算机上的浏览器版本匹配。

浏览器机房已经有,大家可以直接使用,浏览器驱动已经发给大家,

浏览器驱动器和浏览器通讯,向浏览器发出请求,接收响应,两者版本务必要匹配才行。查看浏览器版本方法如下:   

    chrome浏览器100版本的安装包为:1_100.0.4896.127_chr.exe

    chrome100版本浏览器对应的浏览器驱动:5_chromdriver100.0.1.zip文件夹,其下的chromedriver.exe是浏览器驱动       

谷歌浏览器驱动程序各版本下载路径https://chromedriver.chromium.org/downloads
最新测试中的chrome驱动版本

  Chrome for Testing availability

火狐浏览器驱动程序各版本下载路径

  https://github.com/mozilla/geckodriver/releases

Edge浏览器驱动程序下载路径Microsoft Edge WebDriver | Microsoft Edge Developer
其他类型浏览器驱动程序下载路径:Unable to Locate Driver Error | Selenium

下面我们万事俱备,只欠东风。我们来编写一个简单的自动化测试程序实现百度搜索自己的名字吧!

2.实操

1)解压我给大家的java项目文件

2)启动eclipse,导入我给大家的java项目

部分同学使用过程中会不小心把项目视图关闭,通过菜单 windows -> show view 菜单点击对应的视图即可开关相应视图

3)运行脚本

大家根据自己的浏览器情况,选择相应java文件,运行,如果能打开浏览器,进入菜鸟网站,控制提台输出了菜鸟的标题,则说明环境正常,可以继续编写脚本

注意:如果你的chrome浏览器不是我列出的四个版本,也不要害怕。或者把chrome浏览器的代码注释掉,将火狐浏览器的代码取消注释。

如果仍想使用chrome浏览器。请按照下面的步骤进行

a) 下载和你谷歌浏览器版本对应的浏览器驱动。放到项目的chromedriver下,当然为了日后方便查看,建议名称中包含版本

b) 程序中修改浏览器驱动的路径

3)编写脚本

a) 网址可以更改为百度网址澳

driver.get("https://www.runoob.com/html/html-tutorial.html");

b)下面网百度的搜索框输入你的名字

我们需要先定位到搜索框,然后再输入文字,大家如果对html不是太熟悉的话,先给大家一种万能的方法

将定位方式复制下来,写入到代码

例如,我拷贝了css选择器的定位方式 “#kw”,复制到代码中,

driver.findElement(By.cssSelector("#kw"))

因为我要操作,所以,我对元素进行点击  click()

    driver.findElement(By.cssSelector("#kw")).click();

其他操作类型,大家完成剩余操作

4)注意事项

a) 建议代码上加上适当的注释,

这样后期维护、调试时方便些

可以在每个操作前加上注释。例如。 //点击确定按钮  //搜索框输入姓名

b) 及时调试

可以写上几个步骤就运行下,有错误及时修改。不要全部写完再调试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1628804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3分钟入门Java多线程

如何在程序中创建出多条线程&#xff1f; 继承Thread类 public class MyThread extends Thread {Overridepublic void run() {for (int i 0; i < 10; i) {System.out.println("MyThread运行了" i);}} }实现Runnable接口 public class MyRunnable implements …

[Qt的学习日常]--信号和槽

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 本期学习&#xff…

【Qt 学习笔记】Qt常用控件 | 输入类控件 | Spin Box的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 输入类控件 | Spin Box的使用及说明 文章编号&#xff1…

MySQL__索引

文章目录 &#x1f60a; 作者&#xff1a;Lion J &#x1f496; 主页&#xff1a; https://blog.csdn.net/weixin_69252724 &#x1f389; 主题&#xff1a; MySQL__索引&#xff09; ⏱️ 创作时间&#xff1a;2024年04月23日 ———————————————— 这里写目…

Arcpy入门笔记(三):数据属性的读取

Arcpy入门笔记&#xff08;三&#xff09;&#xff1a;数据属性的获取 文章目录 Arcpy入门笔记&#xff08;三&#xff09;&#xff1a;数据属性的获取常用的属性Describe对象属性&#xff08;部分&#xff09;数据集属性&#xff08;部分&#xff09;表属性&#xff08;部分&a…

[c++]菱形继承解析

菱形继承 大概示意图&#xff1a; 菱形继承不一定只是标准的菱形&#xff0c;只要形似菱形的都可以叫菱形继承。 (以下说明都是默认公有继承&#xff0c;public和protected成员情况下) 菱形继承会造成数据的冗余和二义性&#xff1a; 冗余&#xff1a;一个Assitant对象里面有…

可解决传统保险丝缺陷的电子保险丝efuse

近年来&#xff0c;电子保险丝&#xff0f;熔断器获得了越来越多的关注&#xff0c;业界对此类解决方案的需求也在不断增加。传统的玻璃管保险丝、片式保险丝和聚合物保险丝很容易受到环境温度和其他使用条件的影响&#xff0c;而且熔断电流的精确度较低。此外&#xff0c;响应…

万兆以太网MAC设计(6)IP协议报文格式详解以及IP层模块设计

文章目录 前言&#xff1a;IPv4报文协议格式二、IP_RX模块设计2.1、模块接口2.2、模块工作过程 三、IP_TX模块设计3.1、模块接口3.2、模块工作过程 四、仿真4.1、发送端4.2、接受端 前言&#xff1a;IPv4报文协议格式 参考&#xff1a;https://sunyunqiang.com/blog/ipv4_prot…

SpringBoot学习之SpringBoot3集成OpenApi(三十八)

Springboot升级到Springboot3以后,就彻底放弃了对之前swagger的支持,转而重新支持最新的OpenApi,今天我们通过一个实例初步看看OpenApi和Swagger之间的区别. 一、POM依赖 我的POM文件如下,仅作参考: <?xml version="1.0" encoding="UTF-8"?>…

【C++】初识C++(下)

&#x1f451;个人主页&#xff1a;啊Q闻 &#x1f387;收录专栏&#xff1a;《C》 &#x1f389;我自会去见我的山 &#x1f4a1;感谢阅读&#xff0c;欢迎关注&#xff0c;点赞&#xff0c;收藏&#xff0c;评论&#x1f4a1; 前言 这篇博客是对C的一个初…

JavaEE——Spring Boot入门

目录 &#x1f4da; JavaEE——Spring Boot入门 &#x1f527; 1. 新建Spring Boot项目 &#x1f6e0; 2. 添加pom依赖 &#x1f4dd; 3. 添加application.yml文件 &#x1f4c2; 4. 创建Dao层 &#x1f527; 5. 创建Service层 &#x1f5a5;️ 6. 创建Controller层及HT…

【刷题篇】动态规划-01背包问题(十)

文章目录 1、01背包2、分割等和子集3、目标和4、最后一块石头的重量 II 1、01背包 #include <iostream> #include<vector> using namespace std;int main() {int n,v;cin>>n>>v;vector<int> Weight(n1);vector<int> Value(n1);vector<i…

注意力机制:SENet详解

SENet&#xff08;Squeeze-and-Excitation Networks&#xff09;是2017年提出的一种经典的通道注意力机制&#xff0c;这种注意力可以让网络更加专注于一些重要的featuremap&#xff0c;它通过对特征通道间的相关性进行建模&#xff0c;把重要的特征图进行强化来提升模型的性能…

Mysql的索引与事务理解

目录 一、Mysql索引 1、索引的概念 2、索引的特点 3、索引使用场景 4、Mysql有关索引的操作 &#xff08;1&#xff09;查询表具有的索引 &#xff08;2&#xff09;增加索引 &#xff08;3&#xff09;删除索引 5、索引实现原理 &#xff08;1&#xff09;B树 &…

详细解析什么是期权交易的获利方法

期权交易的获利方法 在期权交易之前进行充分的准备工作和风险评估是至关重要的。其中行情结构、策略方法、预期收益和风险评估&#xff0c;是期权交易成功的关键要素。它们能帮助我们更好地制定交易计划&#xff0c;控制风险&#xff0c;并追求稳定的利润。以下是对这四点的详…

深入理解冯诺依曼体系结构

文章目录 冯诺依曼体系结构概念冯诺依曼体系结构的优势冯诺依曼体系结构的现实体现 冯诺依曼体系结构概念 冯诺依曼体系结构也称普林斯顿结构&#xff0c;是现代计算机发展的基础。它的主要特点是“程序存储&#xff0c;共享数据&#xff0c;顺序执行”&#xff0c;即程序指令和…

Leetcode297_二叉树的序列化与反序列化

1.leetcode原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 2.题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作&#xff0c;进而可以将转换后的数据存储在一个文件或者内存中&#xff0c;同时也可以通过网络传输到另一个计算机环境&#xf…

Python | Leetcode Python题解之第51题N皇后

题目&#xff1a; 题解&#xff1a; class Solution:def solveNQueens(self, n: int) -> List[List[str]]:def generateBoard():board list()for i in range(n):row[queens[i]] "Q"board.append("".join(row))row[queens[i]] "."return b…

浅谈叉车车载电脑的市场现状

叉车的起源 叉车源于美国&#xff0c;兴于日本&#xff0c;虽然中国起步较晚&#xff0c;但是近些年来发展迅速。叉车又称叉式装载车&#xff0c;是对于成件托盘类货物进行装卸、堆垛和短距离运输&#xff0c;实现重物搬运作业的轮式工业车辆。 叉车的分类 叉车分为以上六大类…

webpack3插件CommonChunkPlugin分离vantUI和echarts,问题的webpackJsonp is not defined解决!!!

webpack3插件CommonChunkPlugin分离vantUI和echarts和报错webpackJsonp is not defined的解决 前景&#xff1a;因为项目使用的webpack3开发的场景&#xff0c;打包后的vendor很大&#xff0c;如图显示 如果不做gzip处理的话&#xff0c;大小在2M多&#xff0c;gzip后的大小是…