前几天在这篇文章里提到了Selenium----Puppeteer资料汇总及其与Selenium对比,这次梳理一下Selenium基础知识:
一、selenium IDE,selenium Grid, selenium Webdriver分别是什么?
selenium RC, selenium IDE,selenium Grid, selenium Webdriver分别是什么?

图取自 https://blog.csdn.net/qq_31524409/article/details/100725437

图截自官方文档 https://www.selenium.dev/documentation/zh-cn/getting_started/quick/
二、Selenium 入门例子
1、npm init
2、npm install selenium-webdriver
3、通过 官网文档这里

下载谷歌、火狐和Edge对应的驱动,并放置在项目根目录下;或者你可以设置环境变量 https://www.selenium.dev/documentation/zh-cn/webdriver/driver_requirements/#adding-executables-to-your-path
4、在项目根目录新建example.js文件
const {Builder, By, Key, until} = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
// chrome.setDefaultService(new chrome.ServiceBuilder('./chromedriver_win32').build());
const fs = require('fs');
(async function example() {
const browserArray=['MicrosoftEdge','chrome','firefox'];
async function startBrowserAndDoNext(BrowserName) {
let driver = await new Builder().forBrowser(BrowserName).build();
try {
await driver.get('https://www.baidu.com');
await driver.findElement(By.id('kw')).sendKeys(BrowserName, Key.RETURN);
await driver.wait(until.titleIs(BrowserName+'_百度搜索'), 10000);
//返回页面png截图
await driver.takeScreenshot().then((res)=>{
// 写入文件
let writerStream = fs.createWriteStream(BrowserName+'.png');
writerStream.write(res.toString(), 'base64');
writerStream.end();
console.log('截图完毕')
}).catch((err)=>{
console.log('截图出现错误了'+err)
})
// await driver.quit();
}catch (error){
console.log('内部出错了'+error)
}
}
browserArray.forEach((item)=>{
startBrowserAndDoNext(item)
})
})();
5、执行node example 即可看到自动打开谷歌、火狐及Edge浏览器,并在百度上输入 对应的浏览器名字并截图相应的搜索结果至项目根目录;

三、Selenium 资料汇总
a、npm https://www.npmjs.com/package/selenium-webdriver
b、api https://www.selenium.dev/selenium/docs/api/javascript/index.html
c、官方教程文档 https://www.selenium.dev/documentation/zh-cn/getting_started/
d、官网 https://www.selenium.dev/
e、非官方教程 https://wizardforcel.gitbooks.io/selenium-doc/content/official-site/selenium-web-driver.html
https://wizardforcel.gitbooks.io/selenium-webdriver-simple-tutorial/content/1.html
f、常用api
https://blog.csdn.net/wu5229485/article/details/102511708
https://www.cnblogs.com/Ming8006/p/5727542.html
四、其他
1、如果想在 iOS 上实现 Safari 自动化,可以考虑 Appium,它是一个开源的、跨平台的自动化测试框架,可以用来测试Native App、混合应用、移动Web应用(H5应用)
资料 https://help.aliyun.com/document_detail/93721.html
2、Cypress
UI自动化测试神器->Cypress
3、katalon 比Selenium更强大的工具 https://www.katalon.com/katalon-recorder-vs-selenium-ide/

网友评论