我们的团队有几个星期的问题。 我们目前在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线:
希望有人有答案,非常感谢!!
答案 0 :(得分:0)
代理需要以交互模式运行。
答案 1 :(得分:0)
我已使用 AutoIT3 修复了它。 加载nuget并使用其方法发送文件的路径,您可以完美地与任何弹出浏览器窗口进行交互。 最重要的是,远程服务器也是这样做的。 非常感谢大家!
答案 2 :(得分:0)
AutoIT3或AutoItX.Dotnet? 您可以发送代码段吗?我用下面的代码
id -Gn TJ252020
在本地但不能在远程工作正常