Tag: selenium webdriver

尝试启动Firefox驱动程序时出错

请在编写启动firefox驱动程序的代码时出现此错误: ================================================== ================================ WebDriver.dll中发生未处理的“OpenQA.Selenium.DriverServiceNotFoundException”类型exception 附加信息:geckodriver.exe文件不存在于当前目录或PATH环境变量的目录中。 该驱动程序可以从https://github.com/mozilla/geckodriver/releases下载。 这是代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using OpenQA.Selenium; using OpenQA.Selenium.Firefox; using System.Threading.Tasks; namespace FireFox_Driver_Launch { class Program { static void Main(string[] args) { var Driver = new FirefoxDriver(); Driver.Navigate().GoToUrl(“http://www.starwoodhotels.com/preferredguest/account/enroll/index.html”); } } } ================================================== ============== 我还添加了“Manager Nuget Packages”中的selenium webdriver包。 我搜索了这个网站和谷歌的解决方案。 但是,我还没有得到解决方案。 firefox浏览器安装在PC上。 我已经下载了geckodriver。 请问,我怎么把它放在PATH中? 我相信它应该在系统环境变量中? 谢谢您的帮助。

如何在不丢失Cookie的情况下刷新我的Selenium ChromeDriver实例?

在我尝试使用C#在Selenium中自动化的手动测试用例中,它说:“使用复选框登录’记住我’已激活,关闭浏览器,打开浏览器,检查用户是否仍然登录。” 手动执行,这当然是成功的。 使用Chrome中的Selenium,我总是会在会话中丢失Cookie。 到目前为止我尝试了什么: public static void RefreshDriver(TestParams testParams) { var cookies = testParams.Target.Driver.Manage().Cookies.AllCookies; var url = new Uri(testParams.Target.Driver.Url); testParams.Target.Driver.Quit(); testParams.Target = testParams.Target.Clone(); // creates new ChromeDriver() string temp = url.GetLeftPart(UriPartial.Authority); testParams.Target.Driver.Navigate().GoToUrl(temp); foreach (Cookie cookie in cookies) { testParams.Target.Driver.Manage().Cookies.AddCookie(cookie); } testParams.Target.Driver.Navigate().GoToUrl(url); } 这就是我创建ChromeDriver的方法: private ChromeDriver _CreateChromeDriver(string httpProxy) { var options = new ChromeOptions(); string tempDir […]

当我将Webdriver Firefox配置文件设置为默认下载所有文件时它无法正常工作

我设置firefox配置文件默认下载所有文件,但是当涉及到图像时,它弹出一个对话框,并告诉我天气保存或查看。 我使用的代码如下 var folderName = “temp”; var profile = new FirefoxProfile { EnableNativeEvents = true }; profile.SetPreference(“browser.download.folderList”, 2); profile.SetPreference(“browser.download.manager.showWhenStarting”, false); profile.SetPreference(“browser.download.dir”, folderName); profile.SetPreference(“browser.download.downloadDir”, folderName); profile.SetPreference(“browser.download.defaultFolder”, folderName); profile.SetPreference(“browser.helperApps.neverAsk.saveToDisk”, “application/all”); _webDriver = new FirefoxDriver(profile);

使用selenium选择表格中的复选框

我正在尝试检查表中的复选框,它实际上能够找到复选框,但它不会检查/单击复选框。 selectCheckbox.Click()不起作用,有人可以向我解释为什么不检查/点击复选框? 谢谢 :) 我的代码是这样的: IWebElement table = WebBrowser.Current.FindElement(By.TagName(“tbody”)); ReadOnlyCollection allRows = table.FindElements(By.TagName(“tr”)); for (int z = 0; z < allRows.Count; z++) { ReadOnlyCollection cells = allRows[z].FindElements(By.TagName(“td”)); for (int y = 0; y < cells.Count; y++) { var value = allRows[z].FindElements(By.TagName("td"))[y].Text; if (value.Equals(tenant)) { var selectCheckbox = allRows[z].FindElements(By.TagName("td"))[y – 1]; selectCheckbox.Click(); } } }

模拟枚举inheritance:最佳选择和实践

我正在设计一个测试应用程序(使用NUnit),它必须通过网页导航(通过Selenium Webdriver API)。 我想使用枚举来模拟站点结构,以便能够通过此枚举告诉方法导航的位置(尤其是NUnit方法)。 this.NavigateTo(Page.HomePage); 这是一个强烈的要求(在某处有一个枚举类型),主要是因为NUnit不能传递非基本类型。 例如,NUnit不可能使用这种语法,因为Page 必须是原始的或枚举的: static class Page{ public static Page HomePage; public static Page UserAccountPage; } /* … later … */ [TestCase(Page.HomePage)] void TestMethod(Page p) { … 我也想使用相同的enum-or-like来制作基本的inheritance,比如 interface IPage{} interface IPageNavigatable : Page {} interface IPageUserRelated : Page {} interface IWildcardPage : Page {} enum Page{ HomePage : IPageNavigatable, UserAccountPage […]

Selenium C# – 无法使用xlink:href属性单击元素

对于C#来说,我是Selenium的新手。 我想点击标签之间的元素(下图)。 我尝试过以下方法: driver.FindElement(By.XPath(“//use[@href=’#events-widget’]”)).Click(); driver.FindElement(By.XPath(“//use[@href=’#events-widget’/]”)).Click(); driver.FindElement(By.XPath(“//use[@xlink:href=’#events-widget’]”)).Click(); driver.FindElement(By.XPath(“//use[@xlink:href=’#events-widget’]/”)).Click(); driver.FindElement(By.LinkText(“Events”)).Click(); 帮助将不胜感激:)

使用XPATH或CSS Selector在Selenium中查找元素

我试图在C#中使用Selenium Webdriver找到元素“import”。 尝试过以下代码但没有找到它。 driver.FindElement(By.XPath(“//*[@class=’menu_bg’]/ul/li[3]”)).Click(); driver.FindElement(By.XPath(“//*[@id=’import’]/a”)).Click(); driver.FindElement(By.CssSelector(“#import>a”)).Click(); driver.FindElement(By.XPath(“//*[@class=’menu_bg’]/ul/li[3]/a”)).Click(); driver.FindElement(By.CssSelector(“ul[@class=’menu_bg’]>li[value=’3′]”)).Click(); 请帮帮我。 设计页面如下所示: Import 我一直得到如下错误: unable to find the element

是否存在Selenium Webdriver录像机?

是否存在Selenium 2 WebDriver的录像机 ? 对于Selenium 1,IDE已经作为Firefox插件。 您可以将操作记录为脚本,并让它们自动重复。 但我正在为Selenium WebDriver寻找相同的东西,可能是作为浏览器插件或桌面应用程序。

ChromeDriver用户首选项已被忽略

我正在使用Selenium webdriver 3.3和ChromeDriver 2.28(32位)。 我的奴隶机是运行Chrome 57的Windows 7。 当Chrome启动时,我尝试使用通过RemoteWebDriver的ChromeOptions来使用参数“password_manager_enabled”禁用“保存密码”弹出窗口。 但是,它似乎根本没有效果。 我尝试过很多关于ChromeOptions,JSON字符串和简单字符串的变体,但都无济于事。 ChromeOptions cOpt = new ChromeOptions(); cOpt.addUserProfilePreference(“profile.password_manager_enabled”, false); var capabilities = chromeOpts.ToCapabilities() as DesiredCapabilities; // Add OS, Platform capabilities etc string gridConnectionURL = “xxxx” driver = new CustomRemoteDriver(new Uri(gridConnectionURL), capabilities, new TimeSpan(0, 5, 0)); 有没有人知道设置此首选项的“正确”方法,以便它可以工作?

通过Options类或DesiredCapabilities禁用IE弹出窗口阻止程序

我知道这可以手动完成一次,方法是转到工具> Internet选项>隐私,然后取消选中打开弹出窗口阻止程序 。 问题是如果我在另一台机器上运行这些测试,与弹出窗口相关的测试将失败。 有没有办法使用Internet Explorer Options或DesireCapabilities来完成此任务。 我尝试过选项 var options = new InternetExplorerOptions { EnableNativeEvents = false }; options.EnsureCleanSession = true; options.UnexpectedAlertBehavior = InternetExplorerUnexpectedAlertBehavior.Dismiss; 我试过了 InternetExplorerUnexpectedAlertBehavior.Accept; 但是,没有奏效。 仍然阻止弹出窗口