selenium.common.exceptions.WebDriverException: Сообщение: GET /session/.../window/rect не соответствует известной команде с get_window_position()
Когда я запускаю этот код
url = 'https://www.google.com'
driver = webdriver.Firefox()
driver.get(url)
print(driver.get_window_position())'
Я получаю эту ошибку
selenium.common.exceptions.WebDriverException: Message: GET /session/bbb48fc8-51ba-4cff-b639-771f80489785/window/rect did not match a known command
Ошибка, кажется, в get_window_position()
метод. Любая идея?
1 ответ
Это сообщение об ошибке...
selenium.common.exceptions.WebDriverException: Message: GET /session/bbb48fc8-51ba-4cff-b639-771f80489785/window/rect did not match a known command
... подразумевает, что метод GET для конечной точки /session/{идентификатор сеанса}/window/rect, т.е. Get Window Rect, не выполнен.
get_window_position
get_window_position () возвращает позицию x,y текущего окна.
Использование:
driver.get_window_position()
Примечание. Поддерживается для совместимых с 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}