正常使用 ChromeDriver 打开Pc端网址:www.ks__.com ,有时候会出现滑块验证问题,开始以为,跟某音的滑块一样,通过打X平台返回点位,然后通过创建Actions对象使用actions.clickAnHold()通过。
没想到的是...滑块使用这种方式通过不了,让识别出来了!!,我以为是匀速滑动被识别的问题,开始各种更改,依然过不了,后来经过我不断的尝试和坚持不懈的寻找其他接口,在加上对ChromeOption添加一些伪装参数的修改终于 success !!!
ChromeOption设置如下:
ChromeOptions option = new ChromeOptions(); //去掉chrome 正受到自动测试软件的控制 option.addArguments("disable-infobars"); option.addArguments("user-agent=" + USER_AGENT); //设置开发者模式启动 option.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation")); option.addArguments("--ignore-certificate-errors"); option.addArguments("--no-sandbox", "--disable-gpu", "--window-position=0,0", "--window-size=2560,1600"); option.addArguments("--headless"); DesiredCapabilities chromeCaps = DesiredCapabilities.chrome(); chromeCaps.setCapability(ChromeOptions.CAPABILITY, option); ChromiumDriver driver = new ChromiumDriver(chromeCaps);
HashMap<String, Object> map = Maps.newHashMap(); map.put("source", "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"); driver.executeCdpCommand("Page.addScriptToEvaluateOnNewDocument", map);
然后driver.get(“https://www.k某某s.com/brilliant”);
进行一顿操作就可以啦!
第一次发记录一下,希望对你有帮助