Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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

python
selenium
webdriver
Теги: #<Tag:0x00007f7b61350910> #<Tag:0x00007f7b613507a8> #<Tag:0x00007f7b61350668>

(Максим Неверный) #1

Всем здравствуйте!
Собственно, из заголовка уже много понять, но должен пояснить.
Не так давно перешёл на 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? Если же я что-то делаю не так, то прошу меня поправить.


(Sergey Pirogov) #2

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


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

(Максим Неверный) #4

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


(Максим Неверный) #5

Если убрать 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

(Yaroslav Pernerovskyy) #6

Серега правильно сказал, не стоит пока переходить на 3.0, особенно на геко драйвер.
Вот тут можно глянуть статус готовности драйвера:


Как видно, почти все там либо частично реализовано, либо вообще никак.


(Максим Неверный) #7

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


(Sergey Pirogov) #8

pip install selenium=2.53.1


(Oleksii Ihnatiuk) #9

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


(zub_test) #10

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


(Максим Неверный) #11

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

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


(Максим Неверный) #12

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


(Oleksandr Khotemskyi) #13

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


(Pavel Ordenko) #14

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


(Kate) #15

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


(Максим Неверный) #16

В данный момент всё стабильно работает под 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()

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


(Vladimir Sokolov) #17

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