Tag: selenium

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

我使用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

Selenium Webdriver PhantomJS C#总是打开一个cmd窗口

我想在C#中使用PhantomJS和Selenium Webdriver。 以下是我的代码: IWebDriver driver = new PhantomJSDriver(); driver.Navigate().GoToUrl(“http://www.google.com”); Console.WriteLine(driver.Url); driver.Quit(); 代码工作正常但无论何时运行,它都会打开一个cmd窗口,其中显示了phantomjs的所有日志。 cmd也用driver.Quit()关闭。 问题是我不希望显示cmd窗口。 我该怎么做才能做到这一点? 更新:当我在Python中执行相同的代码时,cmd窗口不会显示。 但是如果我使用py2exe将python脚本转换为exe,则cmd窗口将再次显示。

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:无法访问其中的iframe和数据

对于iframe,我有这样的HTML代码: 这个框架有一个菜单,文本输入和里面的按钮,因为它在当前页面上打开一个弹出窗口。 Popup从源页面获取其数据,如上所述。 我尝试了不同的方法,即通过手动查找iframe的索引,然后显示其标题,看看我是否在正确的框架但没有运气。 我试图在iframe中的表单中键入数据然后返回到主页但是我一无所知。 请帮忙!

在C#中使用Selenium通过部分id查找元素

我试图找到一个动态生成id的元素。 字符串的最后一部分是常量(“ReportViewer_fixedTable”),所以我可以使用它来定位元素。 我试图在XPath中使用正则表达式: targetElement = driver.FindElement( By.XPath(“//table[regx:match(@id, “ReportViewer_fixedTable”)]”)); 并通过CssSelector定位: targetElement = driver.FindElement( By.CssSelector(“table[id$=’ReportViewer_fixedTable’]”)); 两者都不起作用。 任何建议,将不胜感激。

ChromeDriver显示丢失的UI共享上下文

我有一台运行Windows 7虚拟机的Windows 10笔记本电脑。 在虚拟机内部,当我启动WebDriver时,它在启动时给出错误gpu_process_transport_factory.cc 丢失的UI共享上下文 : IWebDriver driver = new ChromeDriver() //This causes the 1009 Error 然后因查询立体声录音 失败而无法发送GpuChannelMsg_CreateCommandBuffer 和 command_buffer_proxy_impll.cc 共享内存句柄无效 。 这已经工作了几个月并且没有进行任何更改 (此WebDriver是虚拟机的唯一目的),运行它的笔记本电脑运行正常(即没有GPU问题)。 WebDriver仍会浏览页面,但会产生更多错误并且速度会慢10倍。 编辑 :更新到ChromeDriver到2.35仍然是相同的行为。

获取chrome的控制台日志

我想构建一个自动化测试,所以我必须知道chrome控制台中出现的错误。 有一个选项来获取控制台中出现的错误行? 要查看控制台:右键单击页面中的某个位置,单击“检查元素”,然后转到“控制台”。

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

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