Как залогиниться в gmail.com с помощью Selenium Webdriver +Java

212
31 мая 2018, 08:40

Менял профили и для Хрома и для Мозилы - не помогает, как будто защита стоит у них против автоматизированного ПО. Т.к. вручную все получается и такая страница не выскакивает.

 public static WebDriver configureFirefox() {
    System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\WebDrivers\\geckodriver.exe");
    ProfilesIni profile1 = new ProfilesIni();
    FirefoxProfile myProfile = profile1.getProfile("default");
    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setJavascriptEnabled(true);
    capabilities.setCapability(FirefoxDriver.PROFILE, myProfile);
    return new FirefoxDriver(capabilities);
}
public static WebDriver configureChrome() {
    System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\WebDrivers\\chromedriver.exe");
   DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setJavascriptEnabled(true);
    ChromeOptions options = new ChromeOptions();
    options.addArguments("user-data-dir=C:/Users/Admin/AppData/Local/Google/Chrome/User Data/");
    options.addArguments("--start-maximized");
    capabilities.setCapability(ChromeOptions.CAPABILITY, options);
    return new ChromeDriver(capabilities);
}
private final String linkEnterEmailCssLocator = "a.gmail-nav__nav-link.gmail-nav__nav-link__sign-in";
public StartMailPage(WebDriver driver) {
    super(driver);
}
public StartMailPage open() {
    this.open("https://www.google.com/intl/ru/gmail/about/#");
    return new StartMailPage(driver);
}
public LoginPage clickEnterEmail(){
    this.findByCss(linkEnterEmailCssLocator).click();
    return new LoginPage(driver);
}
/*    @FindBy(how = How.CSS, css = "span.RveJvd.snByac")
WebElement buttonNext;*/
private final String inputLoginIdLocator = "identifierId";
//private final String inputReserveEmailIdLocator = "recoveryIdentifierId";
private final String inputPasswordCssLocator = "#password > div.aCsJod.oJeWuf > div > div.Xb9hP > input";
private final String changeUserLinkIdLocator = "identifierLink";
private final String buttonNext = "span.RveJvd.snByac";
public LoginPage(WebDriver driver) {
    super(driver);
}

public SecurityPage logIn(String log, String pass) {
    this.findById(changeUserLinkIdLocator).click();
    this.findById(inputLoginIdLocator).sendKeys(log);
    this.findByCss(buttonNext).click();
    this.findById(inputPasswordCssLocator).sendKeys(pass);
   // js.executeScript("arguments[0].click()", buttonNext);
   // buttonNext.click();
    this.findByCss(buttonNext).click();
    return new SecurityPage();
}

@BeforeTest
public void configureBrowser(){
    firefox = WebDriverFactory.configureFirefox();
    firefox.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
  @AfterTest
public void closeBrowser() {
    firefox.quit();
}
    @Test
public void logIn(){
    new StartMailPage(firefox).open().clickEnterEmail().logIn("login","password");
}
Answer 1

Оказалось в ГУГЛе нужно кликать только на не закрытые элементы, иначе срабатывает их защита и требуется вост. пароля!

READ ALSO
YouTube Data API v3 Queries per day

YouTube Data API v3 Queries per day

Подскажите пожалуйста можно ли как то увеличить квоту на использование YouTube Data API v3, а то просто 1 млн в день мне не хватаетМожет можно хотя...

190
Парсинг разных видов предложений

Парсинг разных видов предложений

Есть текст, в нем надо найти вопросительные, восклицательные и утвердительные предложенияПри это следует, каждое предложение добавить в коллекцию

190
Какой цикл будет быстрее

Какой цикл будет быстрее

Знаем, что forEach медленнее при работе с коллекциями, чем for (хотя может сейчас и это уже оптимизируется) Но накладывает ли приведение типов...

259