Selenium WD Невозможно найти webelement во всплывающем окне на cheaptickets.in - PullRequest
0 голосов
/ 02 сентября 2018

По URL "https://cheapticket.in/b2c/flights", после нажатия на кнопку «Зарегистрироваться» появляется всплывающее окно, в котором я хочу ввести адрес электронной почты и все другие поля, но выдается следующее исключение:

Exception in thread "main" org.openqa.selenium.ElementNotInteractableException: 
Element <input id="" class="fluid" name="login" type="text"> could not be
scrolled into view
package TestPackage;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.GeckoDriverService;

public class CheapTickets {

    public static void main(String[] args){

        System.setProperty("driver.chrome.driver", "D:\\Selenium\\chromedriver.exe");
        WebDriver driver=new ChromeDriver();

        driver.get("https://cheapticket.in/b2c/flights");
        System.out.println("Loaded cheaptickets");

        //go to sign up
        driver.findElement(By.xpath("//a[@id='signup']")).click();
        System.out.println("Travelled to signup");
        driver.findElement(By.xpath("//input[@class='fluid']")).sendKeys("abc@abc.com");
    }
}

Как мне решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Я согласен с @baadnews, xpath, который вы использовали в своем коде для получения поля ввода Email, будет соответствовать 13 элементам в DOM. Таким образом, ваш код получит первое совпадение в DOM, которое не отображается на странице, и вы получите исключение.

Вы можете использовать более конкретный xpath, как этот

email = driver.findElement(By.xpath("//div[@class='content']//input[@name='email']"))
mobile = driver.findElement(By.xpath("//div[@class='content']//input[@name='mobile']"))
name = driver.findElement(By.xpath("//div[@class='content']//input[@name='name']"))
0 голосов
/ 06 сентября 2018

@ SuperShazam выглядит так, будто этот локатор находит в DOM 13 элементов, что может быть причиной, по которой Selenium создает исключение. Попробуйте использовать более конкретный локатор для каждого элемента. Если вы не можете создать более конкретный локатор, попробуйте перебрать элементы и проверить, виден ли нужный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...