selenium-webdriver
Взаимодействие с окнами браузера
Поиск…
Управление активным окном
C #
Максимизация окна
driver.Manage().Window.Maximize();
Это довольно просто, гарантирует, что наше текущее активное окно будет максимизировано.
Положение окна
driver.Manage().Window.Position = new System.Drawing.Point(1, 1);
Здесь мы по существу перемещаем текущее активное окно в новую позицию. В объекте Point
мы предоставляем координаты x
и y
; они затем используются в качестве смещений в верхнем левом углу экрана для определения места размещения окна. Обратите внимание, что вы также можете сохранить позицию окна в переменной:
System.Drawing.Point windowPosition = driver.Manage().Window.Position;
Размер окна
Установка и получение размера окна использует тот же синтаксис, что и позиция:
driver.Manage().Window.Size = new System.Drawing.Size(100, 200);
System.Drawing.Size windowSize = driver.Manage().Window.Size;
URL окна
Мы можем получить текущий URL активного окна:
string url = driver.Url;
Мы также можем установить URL для активного окна, которое заставит драйвер перейти к новому значению:
driver.Url = "http://stackoverflow.com/";
Оконные ручки
Мы можем получить ручку для текущего окна:
string handle = driver.CurrentWindowHandle;
И мы можем получить ручки для всех открытых окон:
IList<String> handles = driver.WindowHandles;
питон
Максимизация окна
driver.maximize_window()
Получить положение окна
driver.get_window_position() # returns {'y', 'x'} coordinates
Установить положение окна
driver.set_window_position(x, y) # pass 'x' and 'y' coordinates as arguments
Получить размер окна
driver.get_window_size() # returns {'width', 'height'} values
Установить размер окна
driver.set_window_size(width, height) # pass 'width' and 'height' values as arguments
Название текущей страницы
driver.title
Текущий URL
driver.current_url
Оконные ручки
driver.current_window_handle
Список открытых окон
driver.window_handles
Закрытие текущего окна браузера
Переключитесь на новую открытую вкладку. Закройте текущие окна (в этом случае новая вкладка). Вернитесь в первое окно.
ТРАНСПОРТИР:
browser.getAllWindowHandles().then(function (handles) {
browser.driver.switchTo().window(handles[1]);
browser.driver.close();
browser.driver.switchTo().window(handles[0]);
});
JAVA Selenium:
Set<String> handlesSet = driver.getWindowHandles();
List<String> handlesList = new ArrayList<String>(handlesSet);
driver.switchTo().window(handlesList.get(1));
driver.close();
driver.switchTo().window(handlesList.get(0));
Обработка нескольких окон
питон
Наиболее часто используемый сценарий:
- открыть страницу в новом окне
- переключиться на него
- сделай что-нибудь
- закрой его
- вернуться к родительскому окну
# Open "Google" page in parent window
driver.get("https://google.com")
driver.title # 'Google'
# Get parent window
parent_window = driver.current_window_handle
# Open "Bing" page in child window
driver.execute_script("window.open('https://bing.com')")
# Get list of all windows currently opened (parent + child)
all_windows = driver.window_handles
# Get child window
child_window = [window for window in all_windows if window != parent_window][0]
# Switch to child window
driver.switch_to.window(child_window)
driver.title # 'Bing'
# Close child window
driver.close()
# Switch back to parent window
driver.switch_to.window(parent_window)
driver.title # 'Google'