Tag: selenium

升级到版本3.9后无法启动Selenium IE Driver

从这里更新到IEDriverServer 3.9 for 64-bit后,我在尝试使用IE运行任何测试时遇到以下exception(版本:11.0.9600.17842,Win8.1)。 有谁知道怎么解决这个问题,还是应该降级到3.8? OpenQA.Selenium.WebDriverException:抛出了一个带有null响应的exception,向URL http:// localhost:53379 / session发送HTTP请求到远程WebDriver服务器。 exception的状态是ReceiveFailure,消息是:基础连接已关闭:接收上发生意外错误。 —-> System.Net.WebException:基础连接已关闭:接收上发生意外错误。 —-> System.IO.IOException:无法从传输连接读取数据:远程主机强制关闭现有连接。 —-> System.Net.Sockets.SocketException:远程主机TearDown强制关闭现有连接:System.NullReferenceException:未将对象引用设置为对象的实例。 堆栈跟踪如下: 结果StackTrace:在OpenQA.Selenium的OpenQA.Selenium.Remium.DriverServiceCommandExecutor.Execute(Command commandToExecute)中的OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)中的OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(命令commandToExecute)。在OpenQA.Selenium的OpenQA.Selenium.Remium.RemoteWebDriver..ctor(ICommandExecutor commandExecutor,ICapabilities desiredCapabilities)的OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)上的Remote.RemoteWebDriver.Execute(String driverCommandToExecute,Dictionary`2参数)位于OpenQA.Selenium.IE.InlennetExplorerDriver..ctor()上的.IE.InternetExplorerDriver..ctor(InternetExplorerDriverService服务,InternetExplorerOptions选项)OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest中System.Net.HttpWebRequest.GetResponse()的WebException (HttpRequestInfo requestInfo) – System.Net.Sockets.NetworkStream.Read上的–IOException(Byte []缓冲区,Int32偏移量, System32.Net.Connection.SyncRead上的System.Net.PooledStream.Read(Byte []缓冲区,Int32偏移量,Int32大小)的Int32大小)(HttpWebRequest请求,Boolean userRetrievedStream,Boolean probeRead) – System.Net.Sockets上的SocketException System.SNet.Sockets.NetworkStream.Read(Byte []缓冲区,Int32偏移量,Int32大小)的.Socket.Receive(Byte []缓冲区,Int32偏移量,Int32大小,SocketFlags socketFlags)

使用Selenium WebDriver从IWebElement获取所有属性

我想用Selenium从DOM中提取一些信息。 我正在使用C#WebDriver。 查看IWebElement接口,您可以轻松提取给定属性。 但是,我想提取一个元素的所有属性,而不需要事先知道它们的名字。 必须有一些简单的方法来执行此操作,因为如果您知道其名称,则有一种获取属性值的方法。 一个例子: IWebElement element = driver.FindElement(By.Id(“myButton”)); Dictionary attributes = new Dictionary(); // ??????? // Profit. 希望我错过了一些明显的东西。 提前致谢!

打开firefox窗口在selenium与firefox插件加载?

当我在selenium中运行我的测试时,新打开的firefox窗口打开时没有我安装的插件,如xpathchecker。 是否可以设置selenium以便它将使用安装了插件的Firefox?

为什么Selenium InternetExplorerDriver Webdriver在调试模式下非常慢(visual studio 2010和IE9)

我正在使用SeleniumHq站点中的示例代码 – 但在调试模式下,性能非常糟糕。 在发布模式下,整个测试大约需要6秒钟(包括启动和关闭IE)在调试模式下需要65秒? 示例代码只是: [Test] public void testBrowser() { // Do something here IWebDriver driver = new InternetExplorerDriver(); //Notice navigation is slightly different than the Java version //This is because ‘get’ is a keyword in C# driver.Navigate().GoToUrl(“http://www.google.com”); IWebElement query = driver.FindElement(By.Name(“q”)); query.SendKeys(“Cheese”); System.Console.WriteLine(“Page title is: ” + driver.Title); // TODO add wait driver.Quit(); } […]

使用Selenium 2查找嵌套的iFrame

我正在为遗留应用程序编写测试,其中主文档中有一个iFrame,然后是其中的另一个iFrame。 所以层次结构是: Html Div (id = tileSpace) iFrame (id = ContentContainer) iFrame (id = Content) Elements 这是我的代码(我正在使用C#) RemoteWebDriver driver = new InternetExplorerDriver(); var tileSpace = driver.FindElement(By.Id(“tileSpace”)); var firstIFrame = tileSpace.FindElement(By.Id(“ContentContainer”)); var contentIFrame = firstIFrame.FindElement(By.Id(“Content”)); 问题是,我无法达到第二级iFrame即contentIFrame 有任何想法吗?

在C#中使用PhantomJS获取屏幕截图

我已经将PhantomJS和Selenium添加到我的C#控制台应用程序中,我希望在它到达特定元素时拍摄浏览器的屏幕截图。 原因是因为出于某种原因,当我使用ChromeDriver时,它工作正常,但是当我使用PhantomJS时,它会在一些元素上失败。 我想我需要介绍如何使用phantomjs在C#中截取屏幕截图。 我在互联网上环顾四周,看起来每个人都在使用java脚本来做这件事。 我遇到的问题是我不知道如何将java脚本集成到我的C#应用​​程序中,然后使用它与phantomJS来获取屏幕截图。 如果我能得到一些如何做到这一点的帮助,那将是非常好的。 TLDR:我找到了http://code.tutsplus.com/tutorials/testing-javascript-with-phantomjs–net-28243这就是我想要做但我不知道怎么用我的javascript c#app。

Selenium WebDriver和浏览器选择文件对话框

我正在使用selenium webdriver,C#。 是否可以使用Firefox选择文件对话框制作工作webdriver? 或者我必须使用像AutoIt这样的东西吗?

Selenium:从文件系统拖放到webdriver?

我必须测试一个Web应用程序,其中包含一个拖放区域,用于从本地文件系统上载文件。 我的测试环境基于C#。 对于我使用过Selenium的自动化测试,但是无法从文件系统中拖动文件。 上传区域是div标签(无input标签)。 那么最好的方法是什么? AutoIt(可以放入网络浏览器)吗? Sikuli?

如何为Selenium添加自定义的ExpectedConditions?

我正在尝试为Selenium编写自己的ExpectedConditions,但我不知道如何添加新的。 有人有例子吗? 我在网上找不到任何教程。 在我目前的情况下,我想等到元素存在,可见,启用并且没有attr“aria-disabled”。 我知道这段代码不起作用: var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(seconds)); return wait.Until((d) => { return ExpectedConditions.ElementExists(locator) && ExpectedConditions.ElementIsVisible && d.FindElement(locator).Enabled && !d.FindElement(locator).GetAttribute(“aria-disabled”) } 编辑:一些额外的信息:我遇到的问题是使用jQuery选项卡。 我在禁用的选项卡上有一个表单,它将在选项卡变为活动状态之前开始填写该选项卡上的字段。

Selenium WebDriver – 如何使用C#设置页面加载超时

我正在使用Selenium 2.20 WebDriver使用C#创建和管理firefox浏览器。 要访问页面,我使用以下代码,在访问URL之前设置驱动程序超时: driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5)); // Set implicit wait timeouts to 5 secs driver.Manage().Timeouts().SetScriptTimeout(new TimeSpan(0, 0, 0, 5)); // Set script timeouts to 5 secs driver.Navigate().GoToUrl(myUrl); // Goto page url 问题是,有时页面需要永远加载,并且看起来使用selenium WebDriver加载页面的默认超时是30秒,这太长了。 我不相信我设置的超时适用于使用GoToUrl()方法加载页面。 所以我试图找出如何设置加载页面的超时,但是,我找不到任何实际工作的属性或方法。 当我单击一个元素时,默认的30秒超时似乎也适用。 有没有办法将页面加载超时设置为特定值,以便当我调用GoToUrl()方法时,它只会等待我指定的时间才能继续?