Facebookにログインし、特定の会社で働く人のリストを取得するために特定のFacebookのURLを開きます(Googleの従業員を取得するなど)私の最初の考えは単純に(正常に動作する)ログインした)https://www.facebook.com/search/str/google/pages-named/employees/present/intersect に移動し、driver.navigateを()を使用して、特定のページにアクセスしてください。()Selenium - ログインして別のページに移動
FirefoxDriver driver = new FirefoxDriver();
driver.get("https://www.facebook.com");
WebElement emailElement = driver.findElementById("email");
WebElement passwordElement = driver.findElementById("pass");
emailElement.sendKeys("[email protected]");
passwordElement.sendKeys("xxxx");
emailElement.submit();
driver.navigate().to("https://www.facebook.com/search/str/google/pages-named/employees/present/intersect");
しかし、このように、Facebookページは利用できません。ページが同じブラウザタブで開かれていても、再度ログインするように求められます。
考え直しは、最初にログインクッキーを取得した後、使用することは新しいドライバについては、このクッキーですた。
FirefoxDriver driver = new FirefoxDriver();
driver.get("https://www.facebook.com");
WebElement emailElement = driver.findElementById("email");
WebElement passwordElement = driver.findElementById("pass");
emailElement.sendKeys("[email protected]");
passwordElement.sendKeys("xxxxx");
emailElement.submit();
Set<Cookie> cookies = driver.manage().getCookies();
FirefoxDriver driver2 = new FirefoxDriver();
for (Cookie cookie : cookies) {
Cookie cookieNew = new Cookie.Builder(cookie.getName(), cookie.getValue()).expiresOn(cookie.getExpiry())
.isHttpOnly(cookie.isHttpOnly()).isSecure(cookie.isSecure()).path(cookie.getPath()).build();
driver2.manage().addCookie(cookieNew);
}
driver2.get("https://www.facebook.com/search/str/google/pages-named/employees/present/intersect");
}
はしかし、そのようには、例外がスローされます。org.openqa.selenium .InvalidCookieDomainException:ドキュメントがクッキーを嫌う。
私は間違っていますか?
をあなたの提案が働いていた、ありがとう! しかし、私は変更しました driver.findElement(By.cssSelector( "input [value = 'ログイン']"))。 〜 driver.findElementById( "loginbutton")。クリック();入力の値が言語に依存するため、 – ossi