Acamori
(Acamori)
15.Сентябрь.2017 05:19:13
#22
К сожалению не сработало.
driver.execute_script("arguments[0].setAttribute('ng-init', 'bpo.Address='1111')", elem)
Traceback (most recent call last):
File "<pyshell#56>", line 1, in <module>
driver.execute_script("arguments[0].setAttribute('ng-init', 'bpo.Address='1111')", elem)
File "C:\Users\admin\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 491, in execute_script
'args': converted_args})['value']
File "C:\Users\admin\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 256, in execute
self.error_handler.check_response(response)
File "C:\Users\admin\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Runtime.evaluate threw exception: SyntaxError: missing ) after argument list
(Session info: chrome=61.0.3163.79)
(Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 10.0.15063 x86_64)
Acamori
(Acamori)
15.Сентябрь.2017 05:22:06
#23
используйте фабрики или прямой SQL, чтобы заполнить необходимыми данными БД.
Это к сожалению для меня пока из разряда научной фантастики
austilko
(Артём Устилко)
16.Сентябрь.2017 20:28:07
#24
Просите разработчиков предоставить\создать Вам API для заполнения нужных полей. Автоматизация - дело совместное.
arturk
(Artur Korobeynyk)
18.Сентябрь.2017 07:03:39
#25
По поводу моего варианта, вы понимаете что там синтаксическая ошибка, а не идейная? Исправьте свой синтаксис и может сработать.
Acamori
(Acamori)
18.Сентябрь.2017 09:09:32
#26
Естественно, пробовал разные атрибуты менять, разные комбинации - к сожалению безрезультатно.
VatslauX
(Vatslau)
21.Сентябрь.2017 17:21:01
#27
пост.пут запрос идёт так или иначе после сабмита формы на сервер.
посмотрите что за запрос - и если по-простому импортируйте в постман
дальше параметризация -дело техники)
сможете 400 сабмитов за 2-3минуты прогнать
Acamori
(Acamori)
27.Сентябрь.2017 08:32:49
#28
Начал копать сейчас в сторону post запросов через python+requests. Но знаний пока не хватает, а гайдов толковых не могу найти. Да и там еще проблема с авторизацией и получением 3х разных куков
VatslauX
(Vatslau)
27.Сентябрь.2017 19:47:52
#29
что тут копать - постман 100 тестов за час,
непонятно как делать, туториалы “ниасилить”
подсказываю хак - отрываете браузер дев консоль например хрома
и бах правой кнопкой на запросе - сохнанить как C-url (что такое тут гугл поможет)
потом в постмане импорт - как рав текст
хдыщь первый запрос есть. и так 100500 раз если нету АПИ нормального.
Потом лишние хедеры поудалять,
хотя бы примитивные тесты из темлейтов сделать
смоук готов.
если не нужно конфиги тестить с тучей переменных и мокать респонсы - то самое то для начала(хотя и тут управление тоже есть но конечно в коде можно всё удобнее сделать)
потом там есть кнопка экспорта кода питоны-шмитоны, джеэсы и всё что угодно
понятно что это чисто поиграться и понять как клиент работает
потом нужен норм билдер сделать, отрефакторить - и вперёд
VatslauX
(Vatslau)
27.Сентябрь.2017 19:51:01
#30
вместо сендкейс - val (селениде) ускорение 10-20 раз примерно
Acamori
(Acamori)
28.Сентябрь.2017 11:09:37
#31
import requests
url = "https://www.bpofulfillment.com/api/File/ClientRequestWithFile"
payload = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"Context\"\r\n\r\nBpoComp\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"Action\"\r\n\r\nBpoAsset.BpoFileRequestPrc\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"Data[Action]\"\r\n\r\nUploadCompPdf\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"Data[AssetId]\"\r\n\r\n4530648\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"Data[Data][AssetId]\"\r\n\r\n4530648\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"Data[Data][OrderId]\"\r\n\r\n3136150\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"Data[Data][CompType]\"\r\n\r\nSale1\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"Data[Data][DocumentType]\"\r\n\r\nMLS\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"Data[Data][Upload]\"\r\n\r\ntrue\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file\"; filename=\"sold.pdf\"\r\nContent-Type: application/pdf\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"
headers = {
'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
'authorization': "Basic TWFrc3ltMjE6QnBvb3JkZXJAMDAz",
'cache-control': "no-cache",
'postman-token': "7d5eb7c0-1aee-dc4b-9f6f-9e9af2babf2d"
}
response = requests.request("POST", url, data=payload, headers=headers)
В общем с использованием всяких “вжух” и “бдыщь” получилось что-то эдакое. И возник небольшой вопрос, как в payload корректно передать файл что б залить одним запросом ? Ибо в постмане он заливается через диалоговое окно и в коде это не отображается. =\
Хоть бы поискал для начала сам. Вопрос-то уже тыщу раз заданный.
Acamori
(Acamori)
29.Сентябрь.2017 06:06:39
#33
Подсказали как правильно преобразовать код с постмана в питон и уже все стало более или менее понятно, но за напутствие все равно спасибо
Acamori
(Acamori)
29.Сентябрь.2017 16:03:37
#35
Сейчас буду тестировать с post запросами, если удастся их приручить - то думаю действительно дело пойдет быстрей.
Mes
(Bolatbek)
29.Сентябрь.2017 17:11:29
#36
Вам надо свои туториалы писать )
VatslauX
(Vatslau)
29.Сентябрь.2017 17:54:48
#37
Спасиб)
на работе провожу вебинары в стиле “how to”
для ноледж трансфера коллегам ))