Tag: selenium

C#和Selenium; 可以按Windows键吗?

我想将浏览器窗口移动到屏幕的左侧或右侧。 手动我会按[WINDOW] + [LeftArrow](或[RightArrow])来实现这一点。 我已经阅读过这篇文章,但它是针对Java的(请参阅注释)但是在使用C#时我找不到按Windows键的方法。 我最好的选择似乎是: driver.Manage().Window.Position = new Point(x-coord, y-coord); driver.Manage().Window.Size = new Size(myWidth,myHeight); 但似乎有点繁琐,我相信有更好的方法。 我也尝试过: Actions action = new Actions(driver); action.SendKeys(Keys. ) 那么Keys没有windows键……

Selenium – Modal对话框目前 – 如何接受信息?

我有以下问题。 在页面上提交一些日期后,我有一个modal dialog,如图所示: 我想点击“ENTER”来完成该模态,但它不起作用。 我有以下代码: driver.FindElement(By.CssSelector(“input.submit”)).Click(); Actions action = new Actions(driver); action.SendKeys(OpenQA.Selenium.Keys.Enter); 点击继续手动测试后返回下一页。 我必须通过这个模式继续测试。 任何想法如何解决这个问题?

以编程方式启动用于Selenium测试的.NET Core Web应用程序

我目前正在尝试在Core Web应用程序上设置一些UI测试,但是我无法启动Web应用程序。 从Web应用程序目录直接使用命令行“dotnet run”工作。 当我在执行测试之前尝试使用Process来运行它时,问题就出现了。 var process = new Process { StartInfo = { FileName = “dotnet”, Arguments = “run”, WorkingDirectory = applicationPath } }; process.Start(); 有没有人在遇到类似的问题之前和/或设法解决它? 我可能会误用Process 。

使用Selenium WebDriver查找任何给定元素的下一个兄弟

我正在尝试创建一个给定WebElement查找并返回下一个元素的方法。 我已经找到了很多关于使用带有“follow”或“follow-sibling”的XPath应该工作的例子,但是我无法让它工作。 为了这个问题的目的,我将展示html,但是元素类型与我需要的东西无关,因为我想要一个给定任何类型的任何元素的通用方法(a / ul / div / whatever)它将返回下一个兄弟姐妹,不论其类型。 “My Label” … … 我的错误调试代码: IWebElement element = driver.FindElement(By.Id(“blah”)); IWebElement nextElement = element.FindElement(By.XPath(“//following-sibling::ul[@class=’some-class’]”)); 我怀疑我的xpath语法是错误的…我坦率地说是无能为力。 “//”是指相对于元素还是DOM本身? 有没有办法在不知道下一个元素的标签是什么的情况下这样做? 无论它是什么类型,我都想获得下一个元素。 我只想弄清楚最简单,最通用的方法。 我想要的是: public IWebElement NextSibling(IWebElement element) { IWebElement nextSibling = element.FindElement(By.?(“magical string to find next sibling”)); return nextSibling; } …这正是你在javascript中已经可以用element.nextSibling()做的事情

如何自动点击“你想打开还是保存?”

我想知道以下是否有ac#或selenium解决方案: 我正在使用selenium从网络服务器上下载文件。 不幸的是在IE9中没有办法禁用这个弹出屏幕。 在c#中是否有单击SAVE按钮的解决方案?

Selenium单击坐标而不是单击预期的位置

我需要屏幕抓一个使用ActiveX控件进行导航的网页。 这不是用于ui测试目的,而是用于从遗留应用程序下载数据。 我的问题是顶部导航是完整的ActiveX与JavaScript,是不可能得到任何东西的元素。 所以我试图在坐标处点击鼠标。 我使用Bergstrom的以下方法回答 基本上我在做 var action = new Actions(ieDriver).MoveToElement(ieDriver.FindElement(By.Tag(“HTML”))).MoveByOffset(200,100).Click().Perform(); 我在调试时确认ieDriver.FindElement返回-1,-1表示HTML标记的位置,因此偏移坐标应该是正确的。 我使用IE工具栏测量坐标。 当我运行代码时没有任何反应,所以我假设它在空白处单击。 有没有办法ping浏览器,所以我知道坐标在哪里或有更好的方法来实现这一点? 我能够使用VS编码unit testing成功地实现这一点,因为它实际上移动了光标,但我不认为许可将允许我使用该选项以及让它在visual studio之外运行的烦恼。

selenium webdriver管理速度?

我刚刚从一个非常老的版本更新了我的selenium WebDriver,它允许我通过以下方式控制驱动程序速度: var _driver = new FireFoxDriver(); _driver.Manage().Speed = Speed.Medium; 安装FireFox 7后,运行selenium测试我的项目不再有效。 所以我通过nuGet为2.8.0.0升级了dll,现在管理速度的能力已经消失了。 还有其他办法吗? 非常感谢

找不到类型或命名空间名称“NUnit”

我有ac#code。(从selenium IDE导出) using System; using System.Text; using System.Text.RegularExpressions; using System.Threading; using NUnit.Framework; using Selenium; namespace SeleniumTests { [TestFixture] public class csharp { private ISelenium selenium; private StringBuilder verificationErrors; [SetUp] public void SetupTest() { selenium = new DefaultSelenium(“localhost”, 4444, “*chrome”, “http://localhost:1924/”); selenium.Start(); verificationErrors = new StringBuilder(); } [TearDown] public void TeardownTest() { try { selenium.Stop(); } […]

在selenium c#中的下拉列表中截取选项

我想使用selenium c#捕获下拉列表中显示的选项的屏幕截图,就像下面显示的图像一样。 我尝试了多种方法来截取屏幕截图。 基本上我要扩展元素的下拉列表以捕获屏幕截图。 这就是我所做的 //#1 var element = Driver.FindElement(By.Id(“carsId”)); Actions builder = new Actions(Driver); builder.SendKeys(element, Keys.LeftAlt + Keys.Down).Build().Perform(); //#2 Actions act = new Actions(Driver); act.MoveToElement(element).Build().Perform(); 当我在网站上完成但没有通过selenium工作时,按下Alt + Down键的第一个实现工作。 第二个实现也不起作用。 我也尝试过builder.ClickAndHold()方法。 我在这里还有另一个问题。 是否真的有可能selenium点击并扩展一段时间,直到抓住屏幕? 任何帮助将不胜感激。

generics方法用法

我在C#中有这个代码: private static T GetPage() where T : new() { var page = new T(); PageFactory.InitElements(Browser.Driver, page); return page; } public static AboutPage About { get { return GetPage(); } } 我试图在Java中实现这一点,因为我非常喜欢这个概念,但我对generics(尤其是c#)并不擅长。 那么,这是我的代码: private static T getPage(Class cls) throws Exception{ T page = cls.newInstance(); PageFactory.initElements(driver, page); return page; } public static LoginPage Login() { return […]