t.me/atinfo_chat Telegram группа по автоматизации тестирования

python + selenium + jquery в FF не работает поиск списка элементов

Теги: #<Tag:0x00007f748ae13ba0> #<Tag:0x00007f748ae13a88> #<Tag:0x00007f748ae139c0> #<Tag:0x00007f748ae138d0> #<Tag:0x00007f748ae13790>

Доброго дня.
Вопрос:
Мы иногда в локаторов используем псевдоселекторы css (visible).
Находим мы такие элементы через jQuery.
Вопрос:
Почему в Chrome все работает нормально и для списка элементов и для одного элемента

Список
self.driver.execute_script(“return jQuery(”" + ‘.ws-item-toolbar’ + “”);")
[< selenium.webdriver.remote.webelement.WebElement (session=“fc289639-ec20-461d-86f5-d08d2df73651”, element=“22”)>, < selenium.webdriver.remote.webelement.WebElement (session=“fc289639-ec20-461d-86f5-d08d2df73651”, element=“23”)>, < selenium.webdriver.remote.webelement.WebElement (session=“fc289639-ec20-461d-86f5-d08d2df73651”, element=“24”)>, < selenium.webdriver.remote.webelement.WebElement (session=“fc289639-ec20-461d-86f5-d08d2df73651”, element=“25”)>]

Один элемент
self.driver.execute_script(“return jQuery(”" + ‘.ws-item-toolbar’ + “”)[0];")
< selenium.webdriver.remote.webelement.WebElement (session=“fc289639-ec20-461d-86f5-d08d2df73651”, element=“22”)>

А в FF, когда должен вернутся список, возвращается словарь со списком атрибутов (и кодом методов в качестве значений) из js

type(self.driver.execute_script(“return jQuery(”" + ‘.ws-item-toolbar’ + “”);"))
< class ‘dict’>

А если возвращать 1 элемент все работает нормально:
type(self.driver.execute_script(“return jQuery(”" + ‘.ws-item-toolbar’ + “”)[0];"))
< class ‘selenium.webdriver.remote.webelement.WebElement’>

Нашел выход, вот так везде работает и возвращает webelement
self.driver.execute_script(“return jQuery.find(’%s’);” % jquery_selector)