WebDriver выдает ошибку времени ожидания при попытке доступа к свойству Url - PullRequest
1 голос
/ 27 января 2020

Я нажимаю на кнопку, которая скачивает файл PDF с сервера и открывает его в новой вкладке. После нажатия я жду, когда откроется вкладка:

    TimeSpan timeSpan = TimeSpan.FromSeconds(10);
    WebDriverWait waiter = new WebDriverWait(driver, timeSpan);
    waiter.Until(drv => drv.WindowHandles.Count == 2);

Когда этот файл PDF открывается, я переключаюсь на новую вкладку:

    string handle = drv.WindowHandles.Last();
    drv.SwitchTo().Window(handle);

Затем я пытаюсь получить доступ к свойству Url в Интернете драйвер:

    TimeSpan timeSpan = TimeSpan.FromSeconds(10);
    WebDriverWait waiter = new WebDriverWait(driver, timeSpan);
    waiter.Until(driver => driver.Url.StartsWith("blob:"));

Но я получаю эту ошибку:

HTTP-запрос к удаленному серверу WebDriver для URL http://localhost: 44829 / session / fc28864b05b7a2b3ad16fd69e29fb48d / url Превышено время ожидания через 60 секунд.

Эта проблема появляется только в режиме без головы на linux машине:

    public static IWebDriver Create()
    {
        ChromeOptions options = new ChromeOptions();

        options.AddArgument("headless");
        options.AddArgument("no-sandbox");
        options.AddArgument("window-size=1920x1080");

        IWebDriver driver = new ChromeDriver(options);

        return driver;
    }

Но нет проблемы в простом режиме chrome при Windows:

    public static IWebDriver Create()
    {
        IWebDriver driver = new ChromeDriver();
        driver.Manage().Window.Maximize();

        return driver;
    }

Эта проблема возникает при попытке поиска элементов тоже.

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