Size: a a a

QA — Автоматизация

2019 November 12

IE

Ivan Efimov in QA — Автоматизация
Сергей Разуваев
Помогите, пожалуйста, разобраться с одним вопросом
Как написать JavaScript запрос, чтобы он эмулировал метод проверки isDisplayed()?
Насколько я знаю там проверяется не только наличие элемента в DOM, но и его прозрачность, размеры и т.п.
У нас в автотестах очень много проверок связанных с таблицами и списками - их нужно фильтровать. Выполнение поочередных проверок (итератором) занимает очень много времени. Писать отдельные запросы для каждого действия фильтрации также не представляется возможным.
Мы написали маленькую библиотечку, которая ищет элементы через Js на стороне браузера - это позволяет кардинально сократить количество обращений к вебдрайверу.
Теперь подошли к оптимизации фильтраций - хотим за один запрос получать индексы строк в которых отображаются необходимые нам элементы.
И отсюда возник вопрос - как правильно написать такую проверку, чтобы она была также валидна, как и проверка со стороны Selenium?
<table>
 <tr>
   <td>hello</td>
   <td style="display: none">hide</td>
 </tr>
</table>
источник

IE

Ivan Efimov in QA — Автоматизация
источник
2019 November 13

IE

Ivan Efimov in QA — Автоматизация
в новых все впаяно, можно купить микро sd дешево и медленно)
https://ru.aliexpress.com/premium/micro-sd.html
источник

А

Алексей in QA — Автоматизация
Poo str
Есть метод:
browser.execute_script(f"arguments[0].value='{text}'", element)
но он почему то выкидывает ошибку selenium.common.exceptions.JavascriptException: Message: javascript error: Invalid or unexpected token
в переменной text лежит текст(type(str)) принтом проверил. Если убрать f-string и просто оставить текст, то все окей. Как мне в скрипт передать переменную чтобы работало. Один тип данных, но в одном случае работает в другом нет.  send_keys не предлагать, мне именно нужен изменить через скрипт
Очевидно, что дело в содержимом переменной text. Ошибка жабаскрипта говорит, что встретился какой то стремный символ. Или наоборот не встретился. Проверяйте содержимое
источник

Ps

Poo str in QA — Автоматизация
Алексей
Очевидно, что дело в содержимом переменной text. Ошибка жабаскрипта говорит, что встретился какой то стремный символ. Или наоборот не встретился. Проверяйте содержимое
значение переменной: 1234567890
источник

IE

Ivan Efimov in QA — Автоматизация
Poo str
Есть метод:
browser.execute_script(f"arguments[0].value='{text}'", element)
но он почему то выкидывает ошибку selenium.common.exceptions.JavascriptException: Message: javascript error: Invalid or unexpected token
в переменной text лежит текст(type(str)) принтом проверил. Если убрать f-string и просто оставить текст, то все окей. Как мне в скрипт передать переменную чтобы работало. Один тип данных, но в одном случае работает в другом нет.  send_keys не предлагать, мне именно нужен изменить через скрипт
можно же вернуть WebElement element = browser.executeScript('return arguments[0]')
element.sendKeys, setAttribute .... можно делать и не нужно эскейписть символы.
источник

А

Алексей in QA — Автоматизация
"arguments[0].value='1234567890'" - работает?
А
text = '1234567890'
"arguments[0].value='{text}'"
не работает?
источник

IE

Ivan Efimov in QA — Автоматизация
это хакерство игнорятся собития onchange
источник

Ps

Poo str in QA — Автоматизация
Алексей
"arguments[0].value='1234567890'" - работает?
А
text = '1234567890'
"arguments[0].value='{text}'"
не работает?
1- работает 2- нет
источник

IE

Ivan Efimov in QA — Автоматизация
Poo str
1- работает 2- нет
еще попробуй '''''''''
источник

IE

Ivan Efimov in QA — Автоматизация
Poo str
1- работает 2- нет
а SendKeys, setAttribute('value', '{text}') не работают?
источник

А

Алексей in QA — Автоматизация
Poo str
1- работает 2- нет
Магии не бывает. Фстринг использует дефолтный формат если не задан конвершен, а это __str__
Нужен полный кусок кода с заданием значения переменной.
источник

Ps

Poo str in QA — Автоматизация
browser = webdriver.Chrome()
browser.get("http://google.com")
text = "123456789"
print(type(text))
inp = browser.find_element_by_css_selector("selector")
browser.execute_script(f"arguments[0].value='{text}", inp)
источник

А

Алексей in QA — Автоматизация
Алсо кодировка utf-8 же стоит?
источник

Ps

Poo str in QA — Автоматизация
Алексей
Алсо кодировка utf-8 же стоит?
да
источник

А

Алексей in QA — Автоматизация
Ну так сам погляди
источник

А

Алексей in QA — Автоматизация
Чего не хватает после текст?
источник

А

Алексей in QA — Автоматизация
Ясное дело что джава скрипт пошлет
источник

А

Алексей in QA — Автоматизация
Кавычки то нет
источник

Ps

Poo str in QA — Автоматизация
Алексей
Кавычки то нет
да... вот это я слепой... спасибо
источник