Selenium C# Загрузка файла не работает с JavaScript Executor и SendKeys - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь загрузить файл в приложение, используя SendKeys, в тег //input, и он не будет в него входить, потому что стиль display:none

Я также попытался выполнить javascript где я устанавливаю атрибуты стиля на 'visibility: visible; display: block;'

Это загружает файл, однако через несколько секунд файл снова исчезает. Это происходит, когда я взаимодействую с другим элементом на одной странице. Я не уверен, что вызывает исчезновение файла после. Есть идеи?

Вот мой селен, C# код:

var el = Driver.Current.FindElement(By.XPath("//*[@id='fileUpload']"));
var js = (IJavaScriptExecutor)Driver.Current;
var script = "arguments[0].setAttribute('style', 'visibility: visible; display: block;')";
js.ExecuteScript(script, el);
//el.Clear();
el.SendKeys(@"PATH TO FILE");

Что-то на заметку, я использовал другие локаторы, кроме Xpath, я получаю те же результаты.

А вот мой HTML:

enter image description here

А вот как это выглядит в приложении:

enter image description here

1 Ответ

0 голосов
/ 20 января 2020

вы начинаете взаимодействовать с другими элементами этой же страницы сразу после ее загрузки? Дайте некоторое время сразу после загрузки. возможно используйте Thread.Sleep (100). Кроме того, чтобы убедиться, что он загружен правильно, попробуйте нажать клавишу ввода сразу после того, как вы выполните el.SendKeys (@ "PATH TO FILE"); может быть так: el.SendKeys (Keys.Enter);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...