Tag: selenium chromedriver

使用selenium从页面保存图像

我正在使用Selenium和Google Chrome驱动程序以编程方式打开页面。 在每个页面上都有一个动态生成的图像,我想下载它。 目前,我正在等待页面完成加载,然后我抓取图像URL并使用System.Net.WebClient下载它。 这工作正常,除了我下载图像两次 – 一次在浏览器中,一次使用WebClient。 问题是每个图像大约是15MB,下载两次快速加起来。 那么 – 是否可以直接从谷歌浏览器中获取图像?

无法使用Selenium WebDriver在Chrome中加载默认配置文件

我正在使用Selenium WebDriver在需要http身份validation的页面上执行某些操作。 我已经登录了我的默认个人资料。 但是seleniumchromedriver将自动使用每个用途的新配置文件,因此我无法通过身份validation阶段。 因此,我想在Selenium WebDriver for Chrome上使用我的默认配置文件(使用帐户登录)。 即使我使用下面的代码,默认配置文件似乎也没有加载到Chrome中 ChromeOptions options = new ChromeOptions(); options.AddArguments(“user-data-dir=C:/Users/user_name/AppData/Local/Google/Chrome/User Data/Default”); IWebDriver driver = new ChromeDriver(@”C:\Users\Lawrence\Desktop\selenium-dotnet-2.33.0\net40″,options); 有帮助吗? =)

无法从WebDriver获取正确的控制台日志(Chrome,C#)

我在Selenium WebDriver,C#中为Chrome浏览器编写了以下微测试(它没用,但在这里并非如此): [Test] public void T2_API_001_PrintingAlerts() { pgactions.OpenDataset(driver, settings.dataset); // opening page for (int i = 0; i < 10; i++) { ((IJavaScriptExecutor)driver).ExecuteScript("TsTable.Admin.log('this is error message', true);"); } var logs = driver.Manage().Logs.GetLog(LogType.Browser); foreach (var log in logs) { Console.WriteLine(log.ToString()); } Thread.Sleep(100000); } 在VS中调试控制台我希望看到(就像我在Web浏览器实例中看到的WebDriver启动的那样): [14:02:22.816] Settings valid! randomTable.js:6711 [14:02:22.976] Constructing table… randomTable.js:6711 [14:02:22.976] Validating 32 rows […]

Selenium ChromeDriver开关标签

当我单击测试中的链接时,它会打开一个新选项卡。 我希望ChromeDriver专注于该标签。 我尝试使用以下代码让ChromeDriver使用ctrl + tab快捷方式更改tabas: Actions builder = new Actions(driver); builder.KeyDown(Keys.Control).KeyDown(Keys.Tab).KeyUp(Keys.Tab).KeyUp(Keys.Control);//switch tabs IAction switchTabs = builder.Build(); switchTabs.Perform(); 但是这引发了以下exception: ekmLiveChat.tests.UITests.EndToEndTest.EndToEnd: System.ArgumentException : key must be a modifier key (Keys.Shift, Keys.Control, or Keys.Alt) Parameter name: key 有没有办法使用ChromeDriver切换标签?

如何在无头模式下启动ChromeDriver

我想尝试无头镀铬,但我遇到了这个问题,我无法在无头模式下启动驱动程序。 我正在关注谷歌文档 。 我错过了什么吗? 代码执行卡在var browser = new ChromeDriver(); 线 这是我的代码: var chromeOptions = new ChromeOptions { BinaryLocation = @”C:\Users\2-as Aukstas\Documents\Visual Studio 2017\Projects\ChromeTest\ChromeTest\bin\Debug\chromedriver.exe”, DebuggerAddress = “localhost:9222” }; chromeOptions.AddArguments(new List() {“headless”, “disable-gpu” }); var browser = new ChromeDriver(chromeOptions); browser.Navigate().GoToUrl(“https://stackoverflow.com/”); Console.WriteLine(browser.FindElement(By.CssSelector(“#h-top-questions”)).Text);

使用Selenium WebDriver在自定义路径下载文件

我是selenium的新手,我想在特定的自定义文件夹中下载带有selenium chrome web驱动程序的文件。 默认情况下,文件是在浏览器指定的下载路径下载。 任何人都建议在C#Selenium中自定义路径下载文件的最佳解决方案。

Selenium因Chrome版本32.0.1700.72 m而失败

Chrome今天早上(2014年8月1日)为我自动更新为“版本32.0.1700.72 m”,现在我的所有自动化测试都无法运行 – 它们失败并出现“System.InvalidOperationException:System.InvalidOperationException:unknown error:无法几乎立即发现打开的页面。 我在跑: Windows 7企业版(SP1)64位 Chrome版本32.0.1700.72 m Selenium ChromeDriver v2.2 .NET C# 这是我得到的控制台输出: Starting ChromeDriver (v2.2) on port 26819 [8668:8300:0108/162344:ERROR:chrome_views_delegate.cc(176)] NOT IMPLEMENTED [8668:8300:0108/162344:ERROR:desktop_root_window_host_win.cc(746)] NOT IMPLEMENTED [8668:8300:0108/162345:ERROR:desktop_root_window_host_win.cc(746)] NOT IMPLEMENTED 这是我得到的例外: Class Initialization method LeadManager.Web.UITest.Tests.ViewLeads.PriorityModeTests.ClassInitialize threw exception. System.InvalidOperationException: System.InvalidOperationException: unknown error: unable to discover open pages (Driver info: chromedriver=2.2,platform=Windows NT 6.1 SP1 x86_64). at […]

多个浏览器使用Webinator + Selenium,SpecFlow和NUnit进行测试

我正在使用Selenium驱动程序使用WebinatorSpecFlow + NUnit开发ASP.NET MVC 3应用程序。 我在使用Chrome(使用chromedriver)和Internet Explorer运行并行测试时遇到问题。 每当我在同一个会话中运行两个测试并通过Webinator并行运行Selenium时,当我向页面发送任何单击操作时,IE似乎都会挂起。 我无法使用此处建议的解决方案,因为SpecFlow会自动生成基础C#代码。 我的解决方案是这样设计的(完整代码可作为要点): _multipleBrowsers.RunTest(web => web.GoToUrl(“http://localhost/PROJECT/Authentication/Registration”)); 会发生什么是我为每个需要测试的浏览器实例化一个新的IWebManager。 然后,我使用浏览器实例调用委托操作。 它是这样的: foreach (var web in _webManagers) { Debug.WriteLine(“Running test with ” + web.Config.Browser); action(web); } 这样,测试几乎并行运行。 它会弹出浏览器,执行操作,然后弹出其他浏览器,等等。 有关如何克服此ChromeDriver问题的任何想法? 我应该使用SpecFlow为多个浏览器更改我的测试方法吗? 参考文献: Webinator specflow NUnit的 ChromeDriver

如何在静默模式下执行Selenium Chrome WebDriver?

使用Chrome Selenium-WebDriver时,它将在服务器启动时输出诊断输出: 在端口9515上启动ChromeDriver(v2.0) 我不想看到这些消息,我怎么能抑制它们呢? 我这样做 ChromeOptions options = new ChromeOptions(); options.AddArgument(“–silent”); IWebDriver Driver = new ChromeDriver(options); 但诊断输出不会被抑制。

安装了Selenium WebDriver.ChromeDriver Nuget包,但不适用于MSTest

我已将WebDriver.ChromeDriver nuget包添加到我的解决方案中,该解决方案包含Selenium WebDriver使用Chrome运行自动化测试所需的ChromeDriver.exe文件。 查看包内容,它只包含以下文件: tools\chromedriver.exe 这应该做的是将此文件夹添加到PATH环境变量,以便可以通过以下代码访问chromedriver.exe (这是在使用MSTest的UnitTest项目中): [TestMethod] public void LaunchWebsite_Chrome() { // create ChromeDriver – this should work if chromedriver.exe // is known to the environment PATH variable IWebDriver driver = new ChromeDriver(); driver.Navigate().GoToUrl(“http://localhost/”); } 但是,我仍然遇到以下exception: chromedriver.exe文件不存在于当前目录或PATH环境变量的目录中。 该驱动程序可以从http://code.google.com/p/chromium/downloads/list下载。 查看nuget文档,它表明nuget包的tools文件夹中的任何内容都将自动添加到PATH环境变量中: http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package :软件包的tools文件夹用于可从软件包管理器控制台访问的powershell脚本和程序。 将文件夹复制到目标项目后,它将添加到`$ env:Path(PATH)环境变量中。 但是,这似乎不起作用。 我甚至在命令行上运行了echo %PATH% ,它没有将我的工具文件夹显示为已注册。 我究竟做错了什么?