Selenium 3.3.0 ошибки. Missing 'type' parameter

Всем здравствуйте!
Собственно, из заголовка уже много понять, но должен пояснить.
Не так давно перешёл на selenium 3 и сразу же стал получать массу ошибок в ранее стабильно работающих тестах. Скажем так:


    def test_001_CheckPage(self):
        driver.set_page_load_timeout(5)
        EditProject = driver.find_element_by_name('yt0')

При запуске выдаёт:
selenium.common.exceptions.WebDriverException: Message: Missing 'type' parameter

Geckodriver установлен, в PATH включен, selenium вчера обновил, браузер FF тоже стабильно обновляется. Ещё раз скажу, что ранее на selenium 2 всё работало стабильно.
Если эти косяки есть следствие сырости третьего selenium, то как можно откатиться на 2 версии обратно через pip? Если же я что-то делаю не так, то прошу меня поправить.

Не нужно пока что переходить на 3й selenium особенно на geckodriver

3 лайка
  1. попробуйте убрать ожидание
  2. напишите какие импорты вы делаете
  3. последняя версия сейчас 3.3.1

Да, я быстро осознал свою ошибку. Как можно откатиться до 2ой версии?

Если убрать driver.implicitly_wait(10) , то естественно всё работает. Проблема как раз в нем.
Мои импорты:

import time
import unittest
import HTMLTestRunner, sys
import datetime

import page_objects

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

Серега правильно сказал, не стоит пока переходить на 3.0, особенно на геко драйвер.
Вот тут можно глянуть статус готовности драйвера:
https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver/status
Как видно, почти все там либо частично реализовано, либо вообще никак.

Ладно, общую тематику я понял :slight_smile: Подскажите, как откатиться до 2ой версии selenium?

pip install selenium=2.53.1

я не уверен, что отвечаю на ваш вопрос, но зачем вам и implicitly wait и load timeout вместе? Или без чего то одного ваши тесты валятся?

Как вариант, можно попробовать просто отключить marionette и остаться на третьем селениуме но всё равно со старым фаерфоксом:
firefox_capabilities['marionette'] = False

Они действительно не нужны в одном месте, может я как-то сумбурно привел пример просто. Не хотел ввести в заблуждение. Но тем не менее проблемы продолжаются. Ох, уж этот selenium 3, я извиняюсь…
После отката до 2.53.1 и перезапуска теперь просто открывается браузер с пустой страницей, далее действий не происходит. Такое ощущение, что программа доходит до
driver = webdriver.Firefox()
и далее не может произвести действие
driver.get("https://site.com")

Имеет ли смысл откатить ещё и FF?

Проблема была решена переходом на Chrome driver и Selenium 2.53.1. Запустил пару тестов - ошибок не получил. Пока полёт нормальный.
Всем спасибо за советы, уделённое и помощь!
Проблему с FF буду решать в экспериментальном порядке. Ждём человекоподобного релиза третьего селена :slight_smile:

1 лайк

3.3.0 вышел сразу с багом. Нужно устанавливать сразу 3.3.1

1 лайк

Да, 2.53.1 поддерживает максимум 47-ой фф, если не ошибаюсь.

меня привела сюда эта же ошибка в 3.3.1 + firefox, так что нет

В данный момент всё стабильно работает под chrome driver (в браузере Chrome) с версией selenium 2.53.1 за исключением одного:

driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')

Не хочет открывать новую вкладку браузере, как ни крути.

ActionChains(driver).key_down(Keys.CONTROL).send_keys('t').key_up(Keys.CONTROL).perform()

Тоже работать не хочет.

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