BOSS 直聘滑动验证

前沿

之所以尝试 BOSSzhipin,我想通过脚本去每天点一下简历刷新
51job,智联,猎聘 目前都是没有验证码的。我都已经写好了脚本。

思路:既然只要滑动不需要考虑滑动的距离那就简单了多, 在网上找滑动元素的例程

方法自己做了一下修改,可以成功滑动,但是 哎呀,出错了,点击刷新再来一次(error:XdrDr)

public static void move(WebDriver driver, WebElement element, int distance) throws InterruptedException {
        System.out.println(element.getAttribute("class"));
        Actions actions = new Actions(driver);
        actions.clickAndHold(element);
        int s = 1;
        int y = 3;
        for (int i = 0; i < 278; i++){
                s += 1;
                y=new Random().nextInt(40) ;
              
        		
               actions.moveToElement(element, s, y).perform();
               Thread.sleep(new Random().nextInt(100) + 150);
        }
      
       
        actions.moveByOffset(300, 5).perform();
        
        Thread.sleep(1000);
        
    }

解决方案

就思考了一下,是不是支持鼠标“前台”滑动就能通过呢,
使用鼠标滑动几次都成功了,使用程序控制鼠标滑动,是这种鼠标前台的模拟而不是通过鼠标消息去模拟,能不能通过呢?

Java 里我不知道怎么使鼠标“前台操作”
鼠标操作分两种,一种是鼠标消息(后台),一种是前台模拟
发消息(后台),鼠标可以打断操作
前台,模拟鼠标操作,不能打断,显然这不是一种高效的方式
但是这个验证过程我只需要 1 -2 s 那又有什么关系呢?

于是用 易语言 写了一个 demo
这是一个成功 demo(之所以这里成功了,是因为这里的浏览器是我手动打开的,不是通过 Java 的 driver 打开的)
视频演示如下(高版本的浏览器可以直接跳转播放,IE 浏览器则会下载)要是论坛支持视频引用就好了。

http://qiniu.domoyun.com/file-hash-mp4-45ebef86adcb54cd6ab560f62e5d185c865543.mp4 【403 Forbidden 在输入框再回车一遍】

既然可以成功

把这个第三方脚本放入 Java re'sou'rces 中,在输入完账号密码后调用这个第三方脚本
image.png

	private static void firefoxtest() throws InterruptedException, IOException {
		//System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "src/main/resources/driver/ChromeDriver 2.45.exe");
		System.setProperty(SystemProperty.BROWSER_BINARY, "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
		
		FirefoxDriver driver = new FirefoxDriver();
		driver.get("https://login.zhipin.com/?ka=header-login");
		Thread.sleep(2000);
		driver.findElement(By.xpath("//*[@id=\"wrap\"]/div[2]/div[1]/form/div[1]/span[2]/input")).sendKeys("15616216603");;
		
		driver.findElement(By.xpath("//*[@id=\"wrap\"]/div[2]/div[1]/form/div[2]/span/input")).sendKeys("qq123456");;
		
		Runtime.getRuntime().exec("src/main/resources/driver/pangluo.exe"); //执行外部程序pangluo.exe
		Thread.sleep(5000);
		
		driver.findElement(By.xpath("//*[@id=\"wrap\"]/div[2]/div[1]/form/div[4]/button")).click();
		
		Thread.sleep(6000);
		
		driver.quit();
	}

这个浏览器是 webdriver 驱动的,webdriver 驱动的情况下,即使手动滑动也通不过

http://qiniu.domoyun.com/file-hash-mp4-c0241da660bbb3722cb1d5eb8cd06eb31378322.mp4 【403 Forbidden 在输入框再回车一遍】

经反复测试,只要用 driver 打开的浏览器,就无法验证通过,即使是手动用鼠标滑。也是报错/
我测试了 Firefox、Chrome 都没成功
image.png

不通过 selenium,就用易语言全部通过前台点击能达到我的目的,显然是一件低效的事情,况且 BOSSzhipin 刷新简历一天只能刷新一次并且还是收费,

如果你知道怎么过,欢迎跟帖

4 回帖
请输入回帖内容 ...
  • pangluo
  • 其他回帖
  • xuanxuan

    童鞋,你的文章被柠檬班软件测试公众号采纳了呦~😊

  • pangluo
  • huahua