//登录企业微信方法一:使用保存cookie的方式。 //登录企业微信方法二:复用浏览器的方式。 一、下面是复用浏览器的方式: 1.在cmd工具中,启动chrome,设置端口和文件存放地址 chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\ChromeProfile"
2.java+selenium代码如下:
ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("debuggerAddress", "127.0.0.1:9222"); WebDriver webDriver = new ChromeDriver(options); System.out.println(webDriver.getTitle());
二、下面是保存cookie的方式:
1.保存cookie,2.登录时读取cookie
@Test public void saveCookie() { try { webDriver.get("https://work.weixin.qq.com/wework_admin/frame"); Thread.sleep(10000); webDriver.navigate().refresh(); Set<Cookie> cookies = webDriver.manage().getCookies(); ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory()); objectMapper.writeValue(new File("cookie.yaml"), cookies); cookies.forEach(cookie -> System.out.println(cookie.getName() + ":" + cookie.getValue())); } catch (Exception e) { throw new RuntimeException(e); } } @Test public void loginTest() { try { webDriver.get("https://work.weixin.qq.com/wework_admin/frame"); TypeReference<List<HashMap<String, Object>>> typeReference = new TypeReference<List<HashMap<String, Object>>>() { }; ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory()); List<HashMap<String, Object>> cookies = objectMapper.readValue(new File("cookie.yaml"), typeReference); cookies.forEach(cookie -> { webDriver.manage().addCookie(new Cookie(cookie.get("name").toString(), cookie.get("value").toString())); }); Thread.sleep(2000); webDriver.navigate().refresh(); webDriver.findElement(By.id("menu_contacts")).click(); //直接找memberSearchInput元素报错,所以等待三秒。 webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS); webDriver.findElement(By.id("memberSearchInput")).sendKeys("开发"); webDriver.findElements(By.id("search_party_list")).get(0).click(); webDriver.findElements(By.cssSelector(".js_add_member")).get(0).click(); Thread.sleep(2000); } catch (Exception e) { throw new RuntimeException(e); }