JavaScript使用selenium踩坑记录

本文介绍了如何使用Selenium进行Web应用程序测试,重点在于配置和使用Chrome浏览器,包括安装对应版本的Chrome和chromedriver,以及在Node.js环境中设置自动化测试脚本。在部署环节,强调了避免使用最新版Chrome以防止兼容性问题,提供了在Linux环境下安装旧版本Chrome的步骤,并给出了适应无桌面环境的Chrome选项配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。

以下以谷歌chrome浏览器为例。

一、开发

1、开发前准备

(1)、chrome

安装chrome对应浏览器,地址点这里
查看版本号,在chrome地址栏输入:chrome://settings/help,查看版本号
在这里插入图片描述

(2)、node、npm环境不再赘述。

二、开发

1、新建一个目录,初始化node仓库。

npm init

2、安装chromedriver和selenium-webdriver

selenium-webdriver安装无版本限制
npm i selenium-webdriver
chromedriver需要安装对应浏览器版本号的版本(我的浏览器是115版本的)
npm i chromedriver@115.0.0

3、开发第一个程序

·JS的selenium开发文档

let webdriver = require('selenium-webdriver');
require('chromedriver')

async function functionHend () {
  console.log('开始');
  let driver = new webdriver.Builder()
    .forBrowser('chrome')
    .build();
  console.log('打开百度');
  await driver.get('https://www.baidu.com');
}
functionHend()

运行一下,成功打开百度就大功告成了!

三、部署

1、安装chrome

(1):第一个大坑来袭:千万不要安装最新版本的chrome,因为Linux系统的chromedriver很难适配,会有各种奇奇怪怪的问题。
(2):我们的原则是不要最新也不要很久,附带一个安装旧版本chrome的地址:地址
(3):为了代码的统一性,开发环境的chrome和部署环境的chrome最好保持一致,以方便chromedriver的版本控制
(4):安装教程:(以Ubuntu系统为例)
1)下载好.deb安装包
2)安装
# 创建目录
mkdir -p /ps/chrome
# 手动上传 .deb 文件
# 进入目录
cd /ps/chrome
# 安装依赖
apt -y install libxss1 libappindicator1 libindicator7
apt --fix-broken -y install
# 安装浏览器
dpkg -i google-chrome*.deb
# 查看版本
google-chrome --version 

正常弹出版本号为安装成功(务必再次确认版本,版本非常重要

3)将刚刚的代码修改为如下版本
let webdriver = require('selenium-webdriver');
let chrome = require('selenium-webdriver/chrome');
require('chromedriver')

async function functionHend () {
  console.log('开始');
  let chromeData = new chrome.Options()
  chromeData.addArguments("--no-sandbox");
  chromeData.addArguments("--headless");
  chromeData.addArguments("--disable-gpu");
  let By = webdriver.By;
  let driver = new webdriver.Builder()
    .forBrowser('chrome')
    .setChromeOptions(chromeData)
    .build();
  console.log('打开地址');
  await driver.get('https://www.baidu.com');
  console.log('打开成功');
  await driver.quit()
  console.log('关闭浏览器');
}
functionHend()

这些新增的chrome配置是为了适配Linux无桌面环境使用浏览器的。

4)安装node、npm环境不再赘述
5)上传代码,开始运行,log全部输出即为运行成功
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值