美文网首页js css html
前端视角介绍自动化模块selenium-webdriver

前端视角介绍自动化模块selenium-webdriver

作者: 祝家庄打烊 | 来源:发表于2022-04-08 22:51 被阅读0次

    首先介绍一下selenium-webdriver,官网上已经说的很明白selenium-webdriver是浏览器自动化库,说白了也就是可以模拟人的行为操作,做一些重复智能化的事情,比如:爬虫和自动化测试。。

    第一步,找到浏览器的版本号,我这里用的chrome版本是100.0.4896.60,通过官网(http://chromedriver.storage.googleapis.com/index.html)提供的地址下载驱动放到项目的根节点上。

    image.png
    image.png

    第二步,下载依赖(node和selenium-webdriver)

    npm install node --save
    npm install selenium-webdriver --save
    

    第三步,讲解编程思路

    引用依赖包,依赖包结构出Builder构造函数,利用Builder构造函数实例化一个有关chrome的对象,通过get打开一个地址,findElement找到对应的元素进行操作,click是点击元素、sendKeys是输入内容。这里有个细节要注意:通过click打开新窗口时,就会存在多个窗口的情况,程序会停留在第一个窗口,会出现找不到元素的情况,这里不要急,找到下一个窗口的句柄,通过switchTo进行切换。

    const {Builder, By, Key, until} = require('selenium-webdriver');
    (async function example() {
      let driver = await new Builder().forBrowser('chrome').build();
      try {
        await driver.get('https://www.jianshu.com/u/bf59b68d2fb6');
        await driver.findElement(By.xpath('//*[@id="note-91073860"]/div/a')).click();
        let curhandle = await driver.getWindowHandle();
        let allhandle = await driver.getAllWindowHandles();
        console.log("curhandle:",curhandle);
        console.log("allhandle:",allhandle);
        let nexthandle = "";
        for(var i=0;i<allhandle.length;i++){
          if(curhandle==allhandle[i]){
            nexthandle = allhandle[i+1]
          }
        }
        await driver.switchTo().window(nexthandle);
        let title = await driver.getTitle();
        console.log(title);
    
        await driver.findElement(By.xpath('//*[@id="__next"]/footer/div[1]/div[1]/div/textarea')).sendKeys('大神,66666');
        await driver.findElement(By.xpath('//*[@id="__next"]/footer/div[1]/div[1]/div/i')).click();
        await driver.findElement(By.xpath('//*[@id="__next"]/footer/div[1]/div[2]/div/div/div/div[2]/div/div/div/div[1]/span[41]')).click();
      } finally {
        // await driver.quit();
      }
    })();
    

    相关文章

      网友评论

        本文标题:前端视角介绍自动化模块selenium-webdriver

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