var driver = CorgiProxy.Driver;
var element = driver.FindElement(By.CssSelector(".x-form-file"));
element.SendKeys("C:\\example.txt");
Дёрнуть скриптом:
var driver = CorgiProxy.Driver;
var script = "document.getElementsByClassName('x-form-file').value='C:\\\\example.txt'";
((IJavaScriptExecutor)driver).ExecuteScript(script);
Есть подозрение, что я что-то упускаю. У всего мира всё работает, а у меня нет
Помогите найти косяк, заранее спасибо!
Т.е. Вы пробуете сделать sendKeys в файловый инпут, но открывается диалог выбора файла.
У вас Windows 10 + IE11, тесты написаны на C#, какая версия Selenium?
Т.е. Вы пробуете сделать sendKeys в файловый инпут, но открывается диалог выбора файла.
У вас Windows 10 + IE11, тесты написаны на C#, какая версия Selenium?
Я можете больше кода показать?
Еще тут есть вариант что у вас на input повесили скрипт который как раз и отвечает за появление диалога. Т.е. любойе изменение ведет к появлению диалога. Вы можете спросить у ваших программистов.
Вариант отключить скрипт.
Если есть кнопка визуально то посмотрите на ней атрибуты. может вы в нее посылаете если у нее стоит класс x-form-file
Еще тут есть вариант что у вас на input повесили скрипт который как раз и отвечает за появление диалога. Т.е. любойе изменение ведет к появлению диалога. Вы можете спросить у ваших программистов.
Да, на инпуте, если я правильно понимаю, висят скрипты на события mouse down, mouse up. Как мне их обойти?
Если есть кнопка визуально то посмотрите на ней атрибуты. может вы в нее посылаете если у нее стоит класс x-form-file
Да, у вас скрипт висит на открытие диалога. Проконсультируйтесь с вашими программистами. Так сложно сказать как обойти. нужно заинжектить скрипт который отключит события вызова диалога выбора файла
Вам нужно найти все инпуты на странице. Найдите среди них тот, который удовлетворяет селектору, который вам уже написал ysparrow (Yaroslav Pernerovskyy). Попробуйте набрать в консоли браузера такую команду: $x("//input[@type=‘file’]"). Это XPath, чтобы найти нужный инпут.
Ребята, проблему решила.
Дело было не в селекторе и даже не в том, что на кнопке висели обработчики.
Проблема была в старом IEDriverServer.exe.
Версия IEDriverServer.exe была 3.3 и, видимо, не тянула. Сейчас в сети есть версия 3.8, но мне подходит и 3.4, она содержит в себе какие-то изменения, связанные с Upload’ом.