System.Windows.Forms - RemoteWebDriver - >访问被拒绝

时间:2018-05-02 13:11:38

标签: c# .net selenium azure-devops remotewebdriver

我们的团队有几个星期的问题。 我们目前在MSTest v1和Selenium 3.11进行测试,专门用于在填写个人资料时上传照片。 在本地工作完美(hehehe),但在远程(RemoteWebdriver)的Build&服务器版本(VSTS)仅在我与此窗口交互的步骤中抛出了拒绝访问类型的错误。 在那里行动的不是Selenium,而是Send.Windows.Forms库和SendKeys类的SendWait方法,它在远程启动时会产生错误。

有问题的元素的屏幕截图>>> 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 :(得分:0)

代理需要以交互模式运行。

答案 1 :(得分:0)

我已使用 AutoIT3 修复了它。 加载nuget并使用其方法发送文件的路径,您可以完美地与任何弹出浏览器窗口进行交互。 最重要的是,远程服务器也是这样做的。 非常感谢大家!

答案 2 :(得分:0)

AutoIT3或AutoItX.Dotnet? 您可以发送代码段吗?我用下面的代码

id -Gn TJ252020

在本地但不能在远程工作正常