Tag: webdriver

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

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

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()方法时,它只会等待我指定的时间才能继续?

不支持复合类名称。 考虑搜索一个类名并过滤结果

我使用driver.findelement by.classname方法在firefox浏览器上读取一个元素,但我得到“不支持复合类名。考虑搜索一个类名并过滤结果。” 例外 这是我的代码 driver.FindElement(By.ClassName(“bighead crb”)).Text.Trim().ToString() //and here is how the html of browser looks like LEAD DELIVERY MADE EASY

Webdriver如何等待元素在webdriver C#中可单击

在浏览器中生成元素后,有一个块Ui覆盖所有元素几秒钟,因为我面临一个问题,因为元素已经存在,web驱动程序尝试单击元素但是单击是Block UI收到。 我曾尝试使用wait Until但我没有帮助,因为我可以在C#webdriver中找到isClickAble var example = _wait.Until((d) => d.FindElement(By.XPath(“Example”))); var example2 = _wait.Until(ExpectedConditions.ElementIsVisible(By.XPath(“Example”))); example.click(); example2.click(); isClickAble是否有C#等价物,提前谢谢

Selenium WebDriver C#完整网站截图使用ChromeDriver和FirefoxDriver

当我使用ChromeDriver截取屏幕截图时,我会获得具有视口大小的屏幕。 当我使用FirefoxDriver截取屏幕截图时,我得到了我想要的内容,这是一个网站的全屏幕打印。 ChromeDriver声明如下: IWebDriver driver = new ChromeDriver(); FirefoxDriver声明如下: IWebDriver driver = new FirefoxDriver(); 两个驱动程序执行相同的代 driver.Manage().Window.Maximize(); driver.Navigate().GoToUrl(url);//url is a string variable ITakesScreenshot screenshotDriver = driver as ITakesScreenshot; Screenshot screenshot = screenshotDriver.GetScreenshot(); screenshot.SaveAsFile(“c:/test.png”, ImageFormat.Png); ChromeDriver的test.png分辨率为1920×1099,仅包含浏览器视口。 FirefoxDriver的test.png分辨率为1903×16559,包含整个页面。 我知道GetScreenshot()方法不会返回相同的分辨率大小,因为它在IEDriver,FirefoxDriver,OperaDriver,ChromeDriver中的实现略有不同。 我的问题是: 为什么ChromeDriver和FirefoxDriver的.GetScreenshot()方法之间存在这样的差异,即使他们使用相同的界面(ITakesScreenshot)? 有没有办法让ChromeDriver的GetScreenshot()方法返回整个网页屏幕而不仅仅是视口?

如何在C#中使用Selenium?

selenium 。 我下载了C#客户端驱动程序和IDE。 我设法记录了一些测试,并成功地从IDE运行它们。 但现在我想用C#做到这一点。 我将所有相关的DLL(Firefox)添加到项目中,但我没有Selenium类。 一些你好的世界会很好。

如何使用Selenium Webdriver .NET绑定设置Chrome首选项?

这是我正在使用的,用户代理可以成功设置,而下载首选项不能。 Windows 7,Chrome 26,Selenium-dotnet-2.31.2,chromedriver_win_26.0.1383.0 ChromeOptions chromeOptions = new ChromeOptions(); var prefs = new Dictionary { { “download.default_directory”, @”C:\code” }, { “download.prompt_for_download”, false } }; chromeOptions.AddAdditionalCapability(“chrome.prefs”, prefs); chromeOptions.AddArgument(“–user-agent=” + “some safari agent”); var driver = new ChromeDriver(chromeOptions); 取自chromedriver.log: [1.201][FINE]: Initializing session with capabilities { “browserName”: “chrome”, “chrome.prefs”: { “download.default_directory”: “C:\\code”, “download.prompt_for_download”: false }, “chrome.switches”: [ “–user-agent=Mozilla/5.0 […]

使用Selenium使用WindowHandles跟踪和迭代选项卡和窗口的最佳方法

我们正在使用Selenium webdriver为Internet Explorer 11进行UI测试。在经过测试的Web应用程序中,有几个屏幕弹出。 在几个测试中,我们最终得到三个browserwindows,还有三个Driver.WindowHandles。 要从一个WindowHandle切换到另一个WindowHandle,我们预计Driver.WindowHandles将像最旧的窗口一样排序,最新的窗口最后。 但情况并非如此:它完全是随机的! 因为windowhandle是一个GUID,所以我们最终使用WindowHandle GUID作为键创建一个字典,其中包含在浏览器窗口中加载的页面类型的值。 但是这也导致在关闭窗口时维护字典。 对于这么简单的事情来说,这似乎是很多工作。 有更好的解决方案吗?