Я нажимаю на кнопку, которая скачивает файл 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;
}
Эта проблема возникает при попытке поиска элементов тоже.