Задать вопрос
SlandShow
@SlandShow
70% of my body is made of movies.

Как искать xpath элемента в новом открытом окне?

У меня есть простая node.js программка, которая заходит на tinder и пытается выполнить вход через фейслбук.

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

 let driver = await new Builder()
        .forBrowser("chrome")
        .build();
 // Google tinder
        await driver.get("https://tinder.com/?lang=ru");

        // Accept privacy polices
        let policyBtnPath = "//*[@id=\"content\"]/div/div[2]/div/div/div[1]/button";
        await driver.findElement(By.xpath(policyBtnPath))
            .click();

        // Waiting for login button and bush it
        await sleep(3000);
        let loginBtnPath = "//*[@id=\"modal-manager\"]/div/div/div/div/div[3]/span/button";
        await driver.findElement(By.xpath(loginBtnPath))
            .click();

        // Login via Facebook
        let facebookLoginPath = "//*[@id=\"modal-manager\"]/div/div/div/div/div[3]/span/div[2]/button";
        await driver.findElement(By.xpath(facebookLoginPath))
            .click();

        // Waiting for login form
        await sleep(4500);

       // Enter login and password
        let loginPath = "//*[@id=\"email\"]";
        let passPath = "//*[@id=\"pass\"]";
         await driver.findElement(By.xpath(loginPath))
            .sendKeys(MY_MAIL);


Можно заметить, что данный скрипт в конце получает ошибку:
(node:8402) UnhandledPromiseRejectionWarning: NoSuchElementError: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="email"]"}

Моё предположение, что вход через facebook открывается в отдельном маленьком окне (
5edb8d3c6db50219085613.png

Как это полечить?
  • Вопрос задан
  • 112 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы