selenium.common.exceptions.WebDriverException: Сообщение: GET /session/.../window/rect не соответствует известной команде с get_window_position () - PullRequest
0 голосов
/ 10 декабря 2018

Когда я запускаю этот код

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 Ответ

0 голосов
/ 11 декабря 2018

Это сообщение об ошибке ...

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 текущего окна.

  • Использование:

    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}
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...