Это сообщение об ошибке...
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 endpoint, т. е. Получить прямоугольник ошибка.
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}
person
DebanjanB
schedule
11.12.2018