Tag: selenium

从Selenium webdriver的当前窗口GUID获取窗口句柄(IntPtr)

我正在尝试捕获整个浏览器屏幕的截图(例如,使用任何工具栏,面板等),而不仅仅是整个页面,所以我有这样的代码: using (FirefoxDriver driver = new FirefoxDriver()) { driver.Navigate().GoToUrl(url); ScreenCapture sc = new ScreenCapture(); // How can I find natural IntPtr handle of window here, using GUID-like identifier returning by driver.currentWindowHandle? Image img = sc.CaptureWindow(…); MemoryStream ms = new MemoryStream(); img.Save(ms, ImageFormat.Jpeg); return new FileStreamResult(ms, “image/jpeg”); }

如何拖动hover元素

我运行此网站的网站是在内部服务器上,所以我无法提供链接,但我可以发布一些单击“显示元素”时显示的相关代码 有5个元素与此相关: 组别1 学生 move1 第2组 MOVE2 此页面显示学生组,并允许用户在组之间拖动学生。 每个组都有一个移动元素。 棘手的部分是,任何给定组的移动按钮仅在用户拖动该组上的学生元素时显示,而该学生不是来自该组。 目标是将学生移至新组,然后返回原始组。 注意:学生XPath在更改组时会发生变化我无法确认,但我相信移动按钮的XPath在隐藏时不同于可见时 我目前的代码: IWebDriver driver = (IWebDriver)FeatureContext.Current[“Driver”]; Actions builder = new Actions(driver); IWebElement originalstudent = driver.FindElement(By.XPath(“//*[@id=\”AMTeacherApp\”]/div/div/div[1]/div/div[3]/div/div/div[2]/div[2]/div[2]/div/div[3]/a[1]/div[1]/div”)); IWebElement originalClass = driver.FindElement(By.XPath(“//*[@id=\”AMTeacherApp\”]/div/div/div[1]/div/div[3]/div/div/div[2]/div[2]/div[2]/div/div[1]”)); IWebElement newClass = driver.FindElement(By.XPath(“//*[@id=\”AMTeacherApp\”]/div/div/div[1]/div/div[3]/div/div/div[2]/div[2]/div[3]/div[1]/div[1]”)); IWebElement originalMove = driver.FindElement(By.XPath(“//*[@id=\”AMTeacherApp\”]/div/div/div[1]/div/div[3]/div/div/div[2]/div[2]/div[2]/div/div[2]/div[1]/div”)); IWebElement newMove = driver.FindElement(By.XPath(“//*[@id=\”AMTeacherApp\”]/div/div/div[1]/div/div[3]/div/div/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div”)); builder.ClickAndHold(originalstudent); builder.MoveToElement(newClass); builder.Release(newMove); builder.Build().Perform(); IWebElement save = driver.FindElement(By.XPath(“//*[@id=\”AMTeacherApp\”]/div/div/div[1]/div/div[3]/div/div/div[1]/div/div/button[2]”)); builder.Click(save); builder.Build().Perform(); //assert group2 has […]

如何在PhantomDriver(无头浏览器)中隐藏FirefoxDriver(使用Selenium)而没有findElement函数错误?

我尝试制作隐藏的FirefoxDriver。 根据我的研究,我必须使用PhantomJSDriver但是当我使用PhantomJSDriver时,driver.FindElement语句不再起作用。 var options = new PhantomJSOptions(); options.AddAdditionalCapability(“phantomjs.page.settings.userAgent”, “Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.94 Safari/537.36”); PhantomJSOptions p = new PhantomJSOptions(); var service = PhantomJSDriverService.CreateDefaultService(); service.SslProtocol = “any”; service.ProxyType = “http”; service.WebSecurity = false; service.IgnoreSslErrors = true; var driver = new PhantomJSDriver(service, options); driver.Navigate().GoToUrl(“https://www.google.com.tr/”); Thread.Sleep(5000); driver.FindElement(By.XPath(“//*[@id=’lst-ib’]”)).SendKeys(“edd”); string s = driver.Url; Console.WriteLine(s); 错误信息: WebDriver.dll中发生未处理的“OpenQA.Selenium.NoSuchElementException”类型exception […]

从JavaScriptExecutor获取ExecuteScript的值

我有一个问题,我需要价值 string someValue = ((IJavaScriptExecutor)Global.Driver).ExecuteScript(“$(‘#publication_title’).val();”); Console.WriteLine(someValue); 任何的想法?

Selenium Webdriver – 如何为Firefox设置代理以“自动检测”

我的脚本在chrome和IE上运行正常,但由于firefox为其代理设置设置了“manual”,因此无法在firefox上启动。 如何将其设置为“自动检测”? C#中的源代码请。 谢谢

拖放被执行但它没有被执行 – webdriver

我已经尝试了这两个代码,它被执行但是动作没有执行,任何人都可以告诉我为什么? //Type one approach Actions action = new Actions(Browser.Driver); IWebElement sourceElement = Browser.Driver.FindElement(By.XPath(Filexpath)); IWebElement targetElement = Browser.Driver.FindElement(By.XPath(NewXpath)); //Type two approach Actions Sourcebuilder = new Actions(Browser.Driver); Actions SourceAction = Sourcebuilder.ClickAndHold(sourceElement); Sourcebuilder.Build(); SourceAction.Perform(); /// move and drop Actions builder = new Actions(Browser.Driver); Actions action = builder.MoveToElement(targetElement); builder.Release(targetElement); builder.Build(); action.Perform(); 提前致谢

使用ScriptEngine(.NET 3.5)在C#中执行Selenium pythonunit testing时遇到问题

第一次海报。 我转向关于堆栈溢出的第一个问题,因为我找到了很少的资源来寻找答案。 我正在寻找从C#应用程序执行Selenium python测试。 我不想每次都要编译C#Selenium测试; 我想利用IronPython脚本进行动态selenium测试。 (注意:我没有Python或ScriptEngine等经验。) Selenium以下列forms在python中输出unit testing: from selenium import selenium import unittest class TestBlah(unittest.TestCase): def setUp(self): self.selenium = selenium(…) self.selenium.start() def test_blah(self): sel = self.selenium sel.open(“http://www.google.com/webhp”) sel.type(“q”, “hello world”) sel.click(“btnG”) sel.wait_for_page_to_load(5000) self.assertEqual(“hello world – Google Search”, sel.get_title()) print “done” def tearDown(self): self.selenium.stop() if __name__ == “__main__”: unittest.main() 我可以使用ipy.exe从命令行运行,没问题: ipy test_google.py 我可以看到Selenium Server启动一个firefox浏览器实例并运行测试。 […]

使用Selenium WebDriver在自定义路径下载文件

我是selenium的新手,我想在特定的自定义文件夹中下载带有selenium chrome web驱动程序的文件。 默认情况下,文件是在浏览器指定的下载路径下载。 任何人都建议在C#Selenium中自定义路径下载文件的最佳解决方案。

在具有基类的多个浏览器中运行Selenium测试

假设我有代码: namespace SeleniumTests { [TestFixture(typeof(FirefoxDriver))] [TestFixture(typeof(InternetExplorerDriver))] public class TestWithMultipleBrowsers where TWebDriver : IWebDriver, new() { private IWebDriver driver; [SetUp] public void CreateDriver () { this.driver = new TWebDriver(); } [Test] public void GoogleTest() { driver.Navigate().GoToUrl(“http://www.google.com/”); IWebElement query = driver.FindElement(By.Name(“q”)); query.SendKeys(“Bread” + Keys.Enter); Thread.Sleep(2000); Assert.AreEqual(“bread – Google Search”, driver.Title); driver.Quit(); } } } 我想阻止 [SetUp] public […]

使用Selenium单击伪元素

我正在尝试使用Selenium来点击一个:: after伪元素。 我意识到这不能通过WebDriver直接完成,但似乎无法通过Javascript找到一种方法。 这是DOM的样子: Accounts ::after 这就是上面元素的样子。 对象的左侧是“按钮”元素,而后面元素是右侧,带有箭头,单击时会显示下拉菜单。 正如您所看到的那样,右侧没有任何标识符,这部分地使得这很难做到。 我已经在stackoverflow中看到了这两个链接,并试图将答案组合起来形成我的解决方案,但无济于事。 使用JavaScript单击Selenium WebDriver中的元素 使用JavaScript在Selenium WebDriver中定位伪元素 这是我的尝试之一: string script = “return window.getComputedStyle(document.querySelector(‘#ext-gen33′),’:before’)”; IJavaScriptExecutor js = (IJavaScriptExecutor) Session.Driver; js.ExecuteScript(“arguments[0].click(); “, script); 我收到此错误: System.InvalidOperationException: ‘unknown error: arguments[0].click is not a function (Session info: chrome=59.0.3071.115) (Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1 x86_64)’ 我也尝试使用Selenium中的Actions类来引用鼠标左侧,类似于这个答案 。 我想这可能是因为我不知道测量的偏移是什么,文档似乎没有给出任何指示。 我认为它是以像素为单位? Actions build = […]