Tag: selenium

如何使用C#使用Selenium WebDriver滚动到元素

如何让Selenium WebDriver滚动到特定元素以在屏幕上显示它。 我尝试了很多不同的选择,但没有运气。 这不适用于c#绑定吗? 我可以跳转到特定位置ex ((IJavaScriptExecutor)Driver).ExecuteScript(“window.scrollTo(0, document.body.scrollHeight – 150)”); 但我希望能够将它发送到不同的元素,而不是每次都给出确切的位置。 public IWebElement Example { get { return Driver.FindElement(By.Id(“123456”)); } } Ex 1) ((IJavaScriptExecutor)Driver).ExecuteScript(“arguments[0].scrollIntoView(true);”, Example); 例2 ((IJavaScriptExecutor)Driver).ExecuteScript(“window.scrollBy(Example.Location.X”, “Example.Location.Y – 100)”); 当我观看它时,它不会将页面跳转到元素,并且exception与屏幕外的元素匹配。 更新:我添加了一个bool ex = Example.Exists(); 之后检查结果。 它确实存在(它是真的)。 它没有显示(因为它仍然在屏幕外,因为它没有移动到元素)它没有被选中?????? 有人看到成功By.ClassName。 有没有人知道在C#绑定中执行此操作是否有问题.Id?

页面加载超时 – 使用C#的Selenium Webdriver

我正在使用Selenium 2.25 WebDriver 我遇到了在页面上找到元素的问题,有时我的测试用例能够找到元素,有时页面不会加载,而且由于页面加载,如果我在下面添加这个元素,它似乎正在工作: driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2)); 我的问题是,我不想让我的代码散布上面的代码行,有没有办法让它在一个地方集中化? 任何帮助将不胜感激,谢谢!

检查Selenium中是否存在元素

我想检查Selenium中是否存在元素,如果存在,则将其分配给名称。 现在我有一些看起来像这样的东西: IWebElement size9 = driver.FindElement(By.CssSelector(“a[data-value*=’09.0′]”)); 但是,如果不存在值为9的元素,则会返回错误。 有没有办法可以检查它是否存在,或者某种类似的东西?

使用Selenium Webdriver处理Windows身份validation

在C#中基于Selenium Webdriver的测试必须使用Windows身份validation登录。 我尝试了几种方法: _Driver.SwitchTo().Alert(); _Driver.FindElement(By.Id(“UserName”)).SendKeys(“LynnTest”); _Driver.FindElement(By.Id(“Password”)).SendKeys(“Welcome1!”); _Driver.SwitchTo().Alert().Accept(); _Driver.SwitchTo().DefaultContent(); 和 IAlert alert = _Driver.SwitchTo().Alert(); alert.SendKeys(“LynnTest\\t”); alert.SendKeys(“Welcome1!”); _Driver.SwitchTo().Alert().Accept(); _Driver.SwitchTo().DefaultContent(); 两者都没有成功。 我没有在我的本地系统上获得Windows身份validation对话框,因此我无法查看源以确定如何使用Selenium By方法查找用户名和密码。 我相信浏览器提供了Windows身份validation对话框,但我没有找到该对话框的任何来源。 使用Selenium(不是AutoIt或其他类似工具)如何将用户名和密码传递到Windows身份validation对话框? 解决方案必须基于Selenium代码,而不是加载项,我无法访问云中的浏览器。 注意:在URL中传递用户名和密码不起作用,因为我理解,因为对话框不是由页面上的html生成的。

查找Selenium WebDriver启动的浏览器进程的PID

在C#中我启动了一个浏览器进行测试,我想得到PID,这样在我的winforms应用程序中我可以杀死所有剩余的ghost进程 driver = new FirefoxDriver(); 我怎样才能获得PID?

使用Selenium突出显示文本

我有一个上下文相关菜单,需要高亮显示文本才能使其正常工作。 但是,我在使用Selenium选择文本时遇到问题。 我首先找到我正在寻找的WebElement,然后尝试使用不同的鼠标事件与它进行交互。 当我试图选择部分文本时,除了将标记放在字符串的末尾之外,它似乎没有做任何其他事情。 这是我的文本框的样子: 这就是我需要它看起来的样子,换句话说,我需要Selenium选择的东西(只是为了说明的目的手动完成它: 这与我在代码中尝试做的一致: public static async Task HighlightElementByCssSelector(this RemoteWebDriver @this, string cssSelector, TimeSpan? timeout = null, TimeSpan? interval = null) { var element = await @this.FindElementByCssSelectorAsync(“.testmarker-registryentryedit .testmarker-title-field”); Actions action = new Actions(@this).MoveToElement(element).ClickAndHold(element).MoveByOffset(10,0).Release(); action.Build().Perform(); } 在这种情况下,@ this表示驱动程序,而FindElementByCssSelectorAsync是“包装器框架”的一部分。 我尝试过不同的MoveToElement,DragAndDrop,ClickAndHold等组合,但我无法让它工作。 关于这里可能有什么问题的任何指示?

Selenium – Visual Studios- C# – 所有(chrome,firefox和Internet Explorer)webdrivers无法启动驱动程序服务

我正在尝试设置Selenium进行测试,我的网络驱动程序似乎都没有工作。 我试过在项目文件夹中移动它们,我可以让Visual Studios找到它们的唯一方法是使用@“path”语句。 真正的问题是……一旦Visual Studio找到webdriver,操作就会超时,我得到以下exception: WebDriver.dll中出现未处理的“OpenQA.Selenium.WebDriverException”类型的exception附加信息:无法在http:// localhost:(每次更改的随机端口号)上启动驱动程序服务 我已经尝试重新启动计算机并让系统管理员检查防火墙和恶意软件阻止程序日志,但似乎都没有帮助(或者他们不知道正确的事情要查找)。 我认为这是一件非常简单的事情,我只是错过了……任何帮助都会非常感激。 这是我的代码的副本: using OpenQA.Selenium; using OpenQA.Selenium.Firefox; using OpenQA.Selenium.Support.UI; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.IE; namespace SeleniumWork { class Program { static void Main(string[] args) { IWebDriver driver = new InternetExplorerDriver(@”C:\blahblahpathstring”); driver.Navigate().GoToUrl(“http://www.google.com/”); IWebElement query = driver.FindElement(By.Name(“q”)); query.SendKeys(“Cheese”); query.Submit(); var wait […]

Selenium webdriver选择新窗口c#

尝试在c#中使用selenium webdriver编写一些测试用例,并且有一个我不确定如何解决的场景 用户场景正在搜索患者的表格,选择患者然后打开一个新窗口,然后在窗口上断言各种项目 我的问题是我无法选择新窗口来断言任何东西,它不是一个弹出窗口,它是一个全新的浏览器窗口,但它没有窗口标题/名称来识别它,我怎么能够将驱动程序焦点切换到此窗口? 提前致谢

按Xpath查找包含文本的元素

如果我搜索单个字符串,这可以正常工作: var element = Driver.FindElement(By.XPath(“//a[contains(text(), ‘About us’)]”)); 但是我可以在下面的例子中有一个或类似的声明吗? var element = Driver.FindElement(By.XPath(“//a[contains(text(), ‘About us’ or ‘about us’)]”));

带有Microsoft Edge驱动程序的Selenium永远不会完成初始化

我正在使用Selenium的C#绑定,并尝试在Microsoft Edge中进行简单的自动化测试。 class Program { static void Main(string[] args) { EdgeOptions options = new EdgeOptions(); options.PageLoadStrategy = EdgePageLoadStrategy.Eager; RemoteWebDriver driver = new EdgeDriver(); driver.Url = “http://bing.com/”; } } 但程序停止了EdgeDriver的初始化,边缘浏览器启动但url永远不会变为“bing.com”。 还有其他人经历过这个吗?