System.Windows.Forms - RemoteWebDriver -> Доступ запрещен - PullRequest
0 голосов
/ 02 мая 2018

У нас проблемы с моей командой в течение нескольких недель. В настоящее время у нас есть тест в MSTest v1 и Selenium 3.11, который посвящен загрузке фотографии при заполнении профиля. В локальном работает отлично (хе-хе), но в удаленном (RemoteWebdriver) сервер Build & Releases (VSTS) выдает ошибку только на этапе, где я взаимодействую с этим окном, типа Отказано в доступе. Здесь действует не Selenium, а библиотека System.Windows.Forms и метод SendWait класса SendKeys, который выдает ошибку при удаленном запуске.

Скриншот рассматриваемого элемента >>> UploadFile

Пример кода:

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Windows.Forms;
using OpenQA.Selenium;
using System.IO;

//...

public class EditarFotoUsuarioAdministrador
    {

    public static void Execute(IWebDriver driver, string foto)
    {

        driver.FindElement(By.XPath("//button[@id='upload']")).Click();

        System.Threading.Thread.Sleep(2000); 
        SendKeys.SendWait(Directory.GetCurrentDirectory() + foto);
        SendKeys.SendWait(@"{Enter}");
        System.Threading.Thread.Sleep(2000);

        driver.FindElement(By.XPath("//button[@id='save']")).Click();

        System.Threading.Thread.Sleep(500); 


    }

}

Как я уже сказал, это локально работает отлично, но когда он запускается на удаленном сервере, весь тест проходит хорошо, пока не достигнет строки SendKeys:

AccessIsDenied

Надеюсь, у кого-то есть ответ, большое спасибо !!

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

Я исправил это с помощью AutoIT3 . Загружая nuget и используя его методы для отправки пути к файлу, вы можете прекрасно взаимодействовать с любым всплывающим окном браузера. И что лучше всего, удаленный сервер тоже это делает. Большое спасибо всем!

0 голосов
/ 06 августа 2019

AutoIT3 или AutoItX. Dotnet? Можете ли вы выслать фрагмент кода. я использовал ниже код

` AutoItX.WinActivate("Open");
  AutoItX.ControlGetFocus("Open");
  AutoItX.Send(file);
  System.Threading.Thread.Sleep(2000);
  AutoItX.ControlClick("Open", " ", "Button1");`

Работает нормально в локальной сети, но не в удаленной

0 голосов
/ 03 мая 2018

Агент должен работать в интерактивном режиме.

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