Нет доступа к кнопке при авторизации на сайт

Пишу авт. тест для Входа на этот сайт (просто ради практики). Когда нажимаю вход высвечивается доп. окно где выбор через, что будет вход. Смотрю в FireBuge class и записываю по какому имени искать кнопку “С помощью Google”
Экспшн типо элемент такой не найден. Кто знает подскажите в чем дело?

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

import java.util.concurrent.TimeUnit;

public class Selen {

private static WebDriver driver = new FirefoxDriver();

public static void main(String[] args) {
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.get("http://automated-testing.info/login");
    driver.findElement(By.id("ember1160")).click();
    driver.switchTo().activeElement().findElement(By.className("btn btn-social google_oauth2")).click();

Не очень я силен в синтаксисе чистого вебдрайвера, но мне кажется, что вы неправильно задаете классы. Попробуйте By.className("google_oauth2")).click();. А если хотите указать всю пачку классов, то By.cssSelector(".btn.btn-social.google_oauth2"));

не проходит, такое же экспшн

Это какой эксепшин? Просьба сразу вставлять такую информацию

Может быть кнопки находятся во фрейме на который нужно переключиться ?
Скиньте ссылку на страницу, или ее html полный.

upd. Увидел ссылку)), все работает, вот xpath к примеру:
//[@class=‘btn btn-social google_oauth2’] или //[@data-ember-action=‘1245’]

Если у елемента присутствует несколько “классов” (через пробел) то By.className может не отработать в таком случае

насколько я понимаю через switchTo идет переключение на появившейся фрейм и в нем я ищу элемент
По идеи последняя строка должна была отработать корректно, но увы экспшн.

 public static void main(String[] args) {
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.get("http://automated-testing.info/login");
    driver.findElement(By.id("ember1218")).click();
    
    driver.switchTo().activeElement().findElement(By.xpath("[@class='btn btn-social google_oauth2']")).click();
}


Exception in thread "main" org.openqa.selenium.InvalidSelectorException: The given selector [@class='btn btn-social google_oauth2'] is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: Unable to locate an element with the xpath expression [@class='btn btn-social google_oauth2'] because of the following error:
SyntaxError: The expression is not a legal expression.

Второй раз говорю, что в ByClass нельзя запихивать несколько классов сразу. Попробуйте:

ничего вышеперечисленное не работает

Зачем использовать вот это - driver.switchTo().activeElement() ?
После клика на кнопку Войти, она становится активной, и Вы пытаетесь найти в ее контексте другую кнопку которой там нет.
Используйте просто driver.findElement(By.cssSelector(".google_oauth2")).click();

2 лайка

Ок, благодарю за помощь