Tag: selenium

C#Selenium访问浏览器日志

有没有办法使用selenium捕获c#中的浏览器日志。 我希望捕获出现在特定页面上的任何JS错误。 最好在Chrome或Firefox上使用。 我以前在Python中做过这个,但这可以在C#中完成吗?

Selenium Webdriver C#Sendkeys(Keys.Arrowdown)

我正在尝试使用Selenium Webdriver / C#compile做一个箭头,但是当我尝试编译时,我得到了这个错误: ‘Keys’是’OpenQA.Selenium.Keys’和’System.Windows.Forms.Keys’之间的模糊参考(CS0104) 我的代码: driver.FindElement(By.Id(“ctl00_PlaceHolderMain_ctrlChangeBillingAddress_ctrlChangeBillingAddress_txtBillingAddress”)).SendKeys(Keys.ArrowDown); driver.FindElement(By.Id(“ctl00_PlaceHolderMain_ctrlChangeBillingAddress_ctrlChangeBillingAddress_txtBillingAddress”)).SendKeys(Keys.Enter);

Selenium:如何通过部分href找到元素?

工作代码1: Driver.Instance.FindElement( By.XPath(“//a[contains(@href,'” + PartialLinkHref + “‘)]” )); 工作代码2: ReadOnlyCollection linkList = Driver.Instance.FindElements(By.TagName(“a”)); for (int i = 0; i < linkList.Count ; i++) { if (linkList[1].GetAttribute("href").Contains(PartialLinkHref)) { element.SetElement(linkList[i]); return element; break; } }

无法从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 2的IWebDriver与页面上的元素进行交互

我正在使用Selenium的IWebDriver在C#中编写unit testing。 这是一个例子: IWebDriver defaultDriver = new InternetExplorerDriver(); var ddl = driver.FindElements(By.TagName(“select”)); 最后一行检索包含在IWebElement的select HTML元素。 我需要一种方法来模拟select列表中的特定option ,但我无法弄清楚如何做到这一点。 经过一些研究 ,我找到了人们使用ISelenium DefaultSelenium类来完成以下操作的ISelenium DefaultSelenium ,但我没有使用这个类,因为我正在使用IWebDriver和INavigation (来自defaultDriver.Navigate() )。 我还注意到ISelenium DefaultSelenium包含许多其他方法,这些方法在IWebDriver的具体实现中IWebDriver 。 那么有什么方法可以将IWebDriver和INavigation与ISelenium DefaultSelenium结合使用?

使用Selenium WebDriver C#在下拉列表中选择每个选项

我无法在下拉列表中选择选项。 我想我需要.Select或SelectElement ,但没有这样的选择。 示例代码: IWebDriver ffbrowser = new FirefoxDriver(); ffbrowser.Navigate().GoToUrl(“http://www.amazon.com/”); ffbrowser.Manage().Window.Maximize(); Thread.Sleep(500); IWebElement ddl = ffbrowser.FindElement(By.Name(“url”)); int numofitems = ddl.FindElements(By.TagName(“option”)).Count; for (int i = 1; i < numofitems; i++) { ffbrowser.select("TagName = option", "index = i"); } “ffbrowser.select”中的“select”报告为错误: 错误1’OpenQA.Selenium.IWebDriver’不包含’select’的定义,并且没有扩展方法’select’接受类型’OpenQA.Selenium.IWebDriver’的第一个参数可以找到(你是否缺少using指令或者assembly参考?) 我的项目参考包括Selenium.WebDriverBackedSelenium , Thoughtworks.Selenium.Core , WebDriver , WebDriver.Support 我有 using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Firefox; […]

在SpecRun / SpecFlow测试执行报告中插入屏幕截图

我正在使用Speclen与Selenium WebDriver和SpecRun作为测试运行器来创建和执行自动化测试用例,我正在寻找一种在测试执行报告中插入屏幕截图的解决方案。 我写了一个方法来在每个Assert函数之后创建截图。 图像保存到特定位置,但是当我进行结果分析时,我必须遵循报告和图像。 将它们放在同一位置(恰好在报告html中)会很不错。 有没有办法执行此操作(类似于控制台输出)?

selenium webdriver C#multithreading

Selenium WebDriver是否支持multithreading? 我正在尝试使用它打开2-4的几个窗口,它看起来像浏览器窗口(Firefox)有时会被冻结。 当一个线程启动时: _driver.FindElement(By.Id(id)).SendKeys(“MyMessage”); 另一个线程同时尝试获取另一个页面元素状态。 怎么处理这个? 从不同的线程访问同一页面是否有任何建议? 如何加快SendKeys方法,并且在SendKeys仍未完成时不允许selenium访问页面?

不知道为什么要使用无头浏览器

我们只是在不使用无头浏览器的情况下实现了CI,而是实际的浏览器。 因此,一旦开发团队检查了新代码。我们的烟雾自动化代码在自动机器上作为后台进程运行并发送结果。 如果有任何失败,它会发送截图。 我们没有得到的是,使用无头浏览器进行上述处理的优势是什么。 我们需要我们的烟雾脚本才能获得此保险。 比如使用Select,Calendar,Uploaded等控件提交一个可以在5分钟内运行的大型表单,而不是简单的网页加载。

如何在c#中制作webdriver线程安全?

我在谷歌搜索过但没有找到解决方案。 有人可以帮助我,因为我能够在java中找到解决方案而不是在C#中找到解决方案。 private static final ThreadLocal webDriver = new ThreadLocal () { @Override protected WebDriver initialValue() { return BrowserType.getBrowserType().getInstance(); } };