Tag: selenium webdriver

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 […]

如何将Wait.Until与Selenium C#一起用于现有元素

我正在寻找一种在selenium(C#)中使用wait.until的方法,但是对于现有元素。 那样: [FindsBy(How = How.Id, Using = “SomeID”)] public IWebElement SearchButton { get; set; } 现在,我想将wait.until用于上面的元素。 我能以任何方式做到这一点吗? 谢谢Yaniv

想要检索给定WebElement的Xpath

使用Selenium WebDriver,我有一个页面中所有Web元素的列表。 我想编写一个函数,它将返回传递元素的XPath字符串。 Call for Function将如下所示: – String XpathOfElement = myWebDriver.getXpath(My_Web_Element) 提示 : – 我认为我们可以使用javascript(使用JavaScriptExecuter)。 但不熟悉javascript。

Selenium Grid Hub和节点问题

HELPPPP PLEASSEE! 现在我已经使用以下内容设置了selenium网格: -Machine A上有一个集线器和节点(集线器在同一台机器上的节点)。 -Machine B(与集线器不同的机器不一样),上面有2个节点。 因此,我现在有一个集线器和3个节点:1在集线器机器(机器A)上充当节点,2在另一个物理节点机器(机器B)上。 因此,通过此设置,我可以并行AFAIK运行3个测试用例。 我会帮助我所做的一切。 集线器的setup命令: java -jar selenium-server-standalone-3.0.0-beta2.jar -role hub -port 4445 (我更改了默认端口号) 节点的setup命令: java -jar -Dwebdriver.ie.driver =“C:\ Libraries \ IEDriverServer.exe”-Dwebdriver.chrome.driver =“C:\ Libraries \ chromedriver.exe”selenium-server-standalone-3.0.0-beta2.jar -role webdriver -hub http:// HubIP:4445 / grid / register -port 4453 然后是C#中的代码用于设置和测试: using System; using OpenQA.Selenium; using OpenQA.Selenium.Firefox; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Safari; using OpenQA.Selenium.Edge; […]

无法与最新版本的Selenium 3.12在Chrome浏览器(版本67.0.3396.87)中与WebElements交互

我正在尝试登录网页并希望传递userId和密码。它没有传递用户ID /密码而页面被停止。获取以下exception – “{对远程WebDriver服务器的URL请求http:// localhost:6905 / session / 4e1158e787cbb6d6a16e5352a290cc89 / element / 0.5806346454853202-1 / 60秒后单击超时。”}“使用chromedriver版本2.40.0,Chrome浏览器版本是67.0.3396.87和Selenium webdriver版本是3.12 还注意到与IE11相同的问题。 请提供有关此的任何帮助/建议。 IWebDriver IeDriver; ChromeOptions options = new ChromeOptions(); options.AddArgument(“disable-infobars”); options.AddAdditionalCapability(“useAutomationExtension”, false); options.AddArgument(“no-sandbox”); IeDriver = new ChromeDriver(options); IeDriver.Navigate().GoToUrl(“https://in.linkedin.com/”); Thread.Sleep(5000); IeDriver.FindElement(By.Id(“login-email”)).Click(); 从Click()方法抛出exception。 “{对URL远程WebDriver服务器的URL请求http:// localhost:6905 / session / 4e1158e787cbb6d6a16e5352a290cc89 / element / 0.5806346454853202-1 / 60秒后单击超时。”}“ StackTrace:OpenQA.Selenium.WebDriverException HResult = 0x80131500 Message =对远程WebDriver服务器的URL请求http:// […]

未处理的exception:system.typeInitializationException

我使用selenium webdriver导航到网站并发送密钥。 它在开发环境/计算机上工作正常。 但是当我试图通过不同的计算机运行时,我收到错误。 namespace McaidWebToolImport { class Program { static void Main(string[] args) { Console.WriteLine(“Enter the batch number: “); string batchnumber = Console.ReadLine(); if (batchnumber != “”) { IWebDriver driver1 = new InternetExplorerDriver(@”C:\IEDriverServer\”); driver1.Navigate().GoToUrl(“http://website.com/webtool/physPop.asp?b=” + batchnumber); System.Threading.Thread.Sleep(2000); driver1.Quit(); } else { Console.WriteLine(“Re-run the application with valid batch number”); Console.WriteLine(“\n\nPress Esacpe key (Esc) to exit”); […]

如何在作为Windows服务运行的Jenkins上以无头模式运行Selenium测试(C#,.NET)

我正在尝试设置Jenkins(版本2.117)并使用Selenium在Windows 10中的.NET堆栈上运行自动化测试,Jenkins作为Windows服务运行。 我正在尝试使用Firefox 56的Firefox Web驱动程序,它支持无头模式。 机器和软件 Windows 10专业版 jenkins2.117 Selenium Webdriver(截至此问题的最新版本) Firefox 56,32位 GeckoDriver v0.16.1 Visual Studio 2017企业版 selenium测试 [TestClass] public class SeleniumTest { [TestMethod] [TestProperty(“Selenium”, “Google”)] public void GoToGoogle() { var options = new FirefoxOptions(); options.AddArgument(“-headless”); var driver = new FirefoxDriver(options); driver.Navigate().GoToUrl(“https://www.google.com”); StringAssert.Contains(driver.PageSource, “Google”); } } 我可以通过Visual Studio进行测试,但在Jenkins构建期间失败了。 用于运行测试的命令: “C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\TestPlatform\vstest.console.exe” […]

使用WebDriverJS(Selenium)的示例

我已经开始学习WebDriverJs来测试网站使用Javascript作为脚本语言来自urlhttps://code.google.com/p/selenium/wiki/WebDriverJs,但在开始时发现了一些理解问题。 根据该页面,我必须将chrome驱动程序保存到某个路径。 这条路是什么? 该路径如何链接到代码下面的示例? var webdriver = require(‘selenium-webdriver’); var driver = new webdriver.Builder(). withCapabilities(webdriver.Capabilities.chrome()). build(); driver.get(‘http://www.google.com’); driver.findElement(webdriver.By.name(‘q’)).sendKeys(‘webdriver’); driver.findElement(webdriver.By.name(‘btnG’)).click(); driver.wait(function() { return driver.getTitle().then(function(title) { return title === ‘webdriver – Google Search’; }); }, 1000); driver.quit(); 从NPM安装 % npm install selenium-webdriver 从Source构建 % git clone https://code.google.com/p/selenium/ % cd selenium % ./go //javascript/node:selenium-webdriver 什么是NPN及相关代码? 请解释一下。 PS:我基本上来自.Net背景 我是否需要进行更多设置才能运行上述代码? 例如,任何javascript文件等 […]

如何修复“权限被拒绝访问属性’文档’”?

在尝试使用selenium rc进行自动化测试时遇到了这个问题。 我只是按照教程中的步骤操作。 这是代码(与教程相同): [TestFixture] public class SeleniumTest { private ISelenium selenium; private StringBuilder verificationErrors; [SetUp] public void SetupTest() { selenium = new DefaultSelenium(“localhost”, 4444, @”*custom D:\Program Files (x86)\Firefox 4\firefox.exe”, “http://www.google.com/”); selenium.Start(); verificationErrors = new StringBuilder(); } [TearDown] public void TeardownTest() { try { selenium.Stop(); } catch (Exception) { // Ignore errors if unable to […]

能够切换驱动程序而不是焦点

场景:假设我有两个选项卡TAB1和TAB2。 我想根据特定条件在这些选项卡之间切换。 使用下面的代码我可以在选项卡之间切换驱动程序,但选项卡焦点不会改变。 帮助我…这有可能实现这一目标吗? public static Boolean SwitchWindow(string title) { try { var currentWindow_title = Driver.Title; var currenhandle = Driver.CurrentWindowHandle; var availableWindows = new ListDriver.WindowHandles); if (currentWindow_title != title) { foreach (string w in availableWindows) { if (currenhandle != w) { Driver.SwitchTo().Window(w); var tit = Driver.Title; if (Driver.Title == title) { break; } } } […]