Управление вкладками firefox в селене

Согласно документации window_handles :

window_handles

Возвращает дескрипторы всех окон в текущем сеансе.

Но я не вижу новый дескриптор, появляющийся в списке window_handles после открытия новой вкладки:

 >>> from selenium import webdriver >>> from selenium.webdriver.common.keys import Keys >>> >>> driver = webdriver.Firefox() >>> driver.get("http://stackoverflow.com/") >>> driver.window_handles [u'{caca92e1-521e-9b4d-9374-00af0ae7d384}'] >>> >>> # open a new tab >>> driver.find_element_by_tag_name("body").send_keys(Keys.COMMAND + 't') >>> driver.window_handles [u'{caca92e1-521e-9b4d-9374-00af0ae7d384}'] 

Как вы можете видеть, window_handles имеет window_handles и то же значение, но я вижу две вкладки, открытые в браузере. Я что-то делаю неправильно? Если да, как мне получить дескриптор новой вкладки?

С помощью:

  • селен 2.44.0 (последний)
  • firefox 35.0 (последний)
  • python 2.7.6

Обратите внимание: если я сделаю аналогичную вещь в Chrome, window_handles отобразит 2 дескриптора:

 >>> driver = webdriver.Chrome() >>> driver.get("http://stackoverflow.com/") >>> driver.execute_script('window.open("about:blank", "_blank");') >>> driver.window_handles [u'CDwindow-9458E5DB-D5ED-496C-BEE7-2FA468F3DF42', u'CDwindow-04C0FBBC-C418-465B-B6AF-F72B288B45C6'] 

2 Solutions collect form web for “Управление вкладками firefox в селене”

Только окно браузера верхнего уровня имеет HWND. У вкладок нет собственных HWND. Для получения более подробных сведений обратитесь сюда .

Selenium имеет ручку для Windows, а не для вкладок. вы также можете работать с вкладками с некоторым кодом, подобным этому

 ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles()); driver.switchTo().window(tabs2.get(0)); 

это позволит вам работать на вкладке 1 и

 driver.switchTo().window(tabs2.get(1)); 

позволит вам работать на второй вкладке. Таким образом, вы можете обрабатывать вкладку в браузере.

  • Получение сообщения «h: null»
  • Установка селена на использование настраиваемого профиля, но он продолжает открываться по умолчанию
  • Keys.ESCAPE в selenium webdriver (python)
  • Прокрутка селена до нижней части не работает должным образом
  • Запуск селена за прокси-сервером
  • Получение Chrome для запуска через Selenium
  • Использование Selenium с Python и PhantomJS для загрузки файла в файловую систему
  • Профиль веб-драйвера Selenium Firefox - отключить окна всплывающих окон и предупреждений
  •  
    Interesting Posts for Van-Lav

    Как я могу прочитать последовательные массивы из двоичного файла с помощью `np.fromfile`?

    Поскольку Django 1.2.1 'prepopulated_fields' не будет препопыляться в admin

    Сохранение стека?

    упаковка с numpy и набором тестов

    Как соответствие регулярному выражению, если оно не содержит определенного слова?

    Рекурсивная функция, возвращающая ни одного в Python

    Python: почему импортированный модуль не может ссылаться на другой импортированный модуль?

    Чтение csv-файла в качестве словаря с использованием pandas

    В numpy, что делает индексирование массива с пустым кортежем против эллипсиса?

    Печать имен и содержимого переменных в качестве инструмента отладки; ищет emacs / Python ярлык

    Рассчитать новое значение, основанное на уменьшении значения

    Когда создается ссылка, а когда выделен новый блок памяти и затем копируется?

    Индексирование кадров данных Pandas: целые строки, именованные столбцы

    Python 2 – Как бы вы округлили вверх / вниз до ближайших 6 минут?

    Как использовать unittest's self.assertRaises с исключениями в объекте генератора?

    Python - лучший язык программирования в мире.