美文网首页
Selenium基础知识

Selenium基础知识

作者: 该帐号已被查封_才怪 | 来源:发表于2020-05-27 23:00 被阅读0次

    前几天在这篇文章里提到了Selenium----Puppeteer资料汇总及其与Selenium对比,这次梳理一下Selenium基础知识:

    一、selenium IDE,selenium Grid, selenium Webdriver分别是什么?

    selenium RC, selenium IDE,selenium Grid, selenium Webdriver分别是什么?

    image.png
    图取自 https://blog.csdn.net/qq_31524409/article/details/100725437 image.png
    图截自官方文档 https://www.selenium.dev/documentation/zh-cn/getting_started/quick/

    二、Selenium 入门例子

    1、npm init
    2、npm install selenium-webdriver
    3、通过 官网文档这里

    image.png

    下载谷歌、火狐和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浏览器,并在百度上输入 对应的浏览器名字并截图相应的搜索结果至项目根目录;


    image.png

    三、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/

    image.png

    相关文章

      网友评论

          本文标题:Selenium基础知识

          本文链接:https://www.haomeiwen.com/subject/lmviahtx.html