Это сообщение об ошибке ...
selenium.common.exceptions.WebDriverException: Message: GET /session/bbb48fc8-51ba-4cff-b639-771f80489785/window/rect did not match a known command
... означает, что метод GET для / session / {session id} / window / rect конечная точка т.е. Получить окно Rect не удалось .
get_window_position
get_window_position () получает координаты x, y текущего окна.
Примечание : Поддерживается для совместимых с W3C браузеров.
Я использовал ваш собственный код на моем Windows 8 поле следующим образом:
from selenium import webdriver
url = 'https://www.google.com'
driver = webdriver.Firefox()
driver.get(url)
print(driver.get_window_position())
Но не могувоспроизведите ошибку / проблему.
Однако на этом этапе стоит упомянуть, что разные клиенты браузера отображают HTML по-другому .Соответствующее обсуждение можно найти в Chrome & Firefox для Windows против Linux (селен) .
Это возможно согласно вашей Тестовой конфигурации Клиент (т. Е. веб-браузер ) возвратил элемент управления в экземпляр WebDriver , т.е. 'document.readyState', равный «complete» перед /session/{session id}/window/rect
конечная точка была создана.
Решение
Вызвать WebDriverWait перед попыткой извлечь window_position следующим образом:
Кодовый блок:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = 'https://www.google.com'
driver = webdriver.Firefox()
driver.get(url)
WebDriverWait(driver, 10).until(EC.title_contains("Google"))
print(driver.get_window_position())
Консольный выход:
{'x': -8, 'y': -8}