コード例 #1
0
        public void TestUpdateLocatorsWhenNullDoesNotUpdateLocators()
        {
            var element = new WebElement(null);
            element.UpdateLocators(null);

            Assert.AreEqual(0, element.Locators.Count);
        }
コード例 #2
0
ファイル: TableElement.cs プロジェクト: thomb1/SeleniumBasic
 internal TableElement(RemoteSession session, WebElement element) {
     _session = session;
     _element = element;
     var tag = _element.TagName.ToLowerInvariant();
     if ("table" != tag && "tbody" != tag)
         throw new Errors.UnexpectedTagNameError("table,tbody", tag);
 }
コード例 #3
0
ファイル: WebElements.cs プロジェクト: thomb1/SeleniumBasic
 internal WebElements(RemoteSession session, List rawElements)
     : base(rawElements.Count) {
     _count = _items.Length;
     for (int i = 0; i < _count; i++) {
         _items[i] = new WebElement(session, (Dictionary)rawElements[i]);
     }
 }
コード例 #4
0
		//
		// This method is invoked when the application has loaded and is ready to run. In this
		// method you should instantiate the window, load the UI into it and then make the window
		// visible.
		//
		// You have 17 seconds to return from this method, or iOS will terminate your application.
		//
		public override bool FinishedLaunching (UIApplication app, NSDictionary options)
		{
			// create a new window instance based on the screen size
			window = new UIWindow (UIScreen.MainScreen.Bounds);

			var web = new WebElement ();
			web.HtmlFile = "instructions";

			var root = new RootElement ("Kannada Keyboard") {
				new Section{
					new UIViewElement("Instruction", web.View, false)
				}
			};
		
			var dv = new DialogViewController (root) {
				Autorotate = true
			};
			var navigation = new UINavigationController ();
			navigation.PushViewController (dv, true);				

			window = new UIWindow (UIScreen.MainScreen.Bounds);
			window.MakeKeyAndVisible ();
			window.AddSubview (navigation.View);
			
			return true;
		}
コード例 #5
0
ファイル: SelectElement.cs プロジェクト: thomb1/SeleniumBasic
 internal SelectElement(WebElement element) {
     string tag = element.TagName.ToLowerInvariant();
     if ("select" != tag)
         throw new Errors.UnexpectedTagNameError("select", tag);
     _element = element;
     object attribute = element.Attribute("multiple");
     this.IsMultiple = attribute != null && attribute.ToString().ToLowerInvariant() != "false";
 }
コード例 #6
0
ファイル: WebElements.cs プロジェクト: thomb1/SeleniumBasic
 internal void Add(RemoteSession session, List rawElements) {
     int count = rawElements.Count;
     int size = _count + count;
     if (size > _items.Length)
         IncreaseSize(size);
     for (int i = 0; i < count; i++) {
         _items[_count++] = new WebElement(session, (Dictionary)rawElements[i]);
     }
 }
コード例 #7
0
        public void TestUpdateLocatorsWhenExistsUpdatesLocators()
        {
            var locator = By.Id("id1");
            var element = new WebElement(null);
            element.UpdateLocators(new[] { locator });

            Assert.AreEqual(1, element.Locators.Count);
            Assert.AreEqual(locator, element.Locators.First());
        }
コード例 #8
0
        public void FindElement()
        {
            var htmlNode = new HtmlNodeBuilder("<html><body><div id=\"page-body\">Hello world</div></body></html>").Build();

            var document = new WebElement(htmlNode, null);
            var div = document.FindElement(By.Id("page-body"));

            Assert.That(div.TagName, Is.EqualTo("div"));
            Assert.That(div.Text, Is.EqualTo("Hello world"));
        }
コード例 #9
0
        public void TestCloneNativeElementBypassesLocators()
        {
            var mockElement = new Mock<IWebElement>(MockBehavior.Strict);

            var element = new WebElement(null);
            element.CloneNativeElement(mockElement.Object);

            Assert.IsTrue(element.Cache);

            mockElement.VerifyAll();
        }
コード例 #10
0
ファイル: Mouse.cs プロジェクト: LightHouse6/SeleniumBasic
 /// <summary>
 /// Move the mouse by an offset of the specificed element.
 /// </summary>
 /// <param name="element">Opaque ID assigned to the element to move to, as described in the WebElement JSON Object. If not specified or is null, the offset is relative to current position of the mouse.</param>
 /// <param name="xoffset">{number} X offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element.</param>
 /// <param name="yoffset"> {number} Y offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element.</param>
 public Mouse MoveTo(WebElement element, int xoffset = 0, int yoffset = 0) {
     var data = new Dictionary();
     if (element != null)
         data.Add("element", element.Id);
     if (xoffset != 0)
         data.Add("xoffset", xoffset);
     if (yoffset != 0)
         data.Add("yoffset", yoffset);
     _session.Send(RequestMethod.POST, "/moveto", data);
     return this;
 }
コード例 #11
0
        public void ClickShouldFollowHrefs()
        {
            var nav = new Mock<INavigation>();

            var htmlNode = new HtmlNodeBuilder("<a href=\"http://www.google.com\">google</a>").Build();

            var webElement = new WebElement(htmlNode, nav.Object);
            webElement.Click();

            nav.Verify( x => x.GoToUrl(htmlNode.Attributes["href"].Value), Times.Once(), "Click() should cause INavigator to go to the url.");
        }
コード例 #12
0
ファイル: AbstractPage1.cs プロジェクト: svatarlea/test
 /// <summary>
 /// Waits for page to load by validating that a Ranorex.WebElement exists.
 /// </summary>
 /// <param name="webElement">The Ranorex.Webelement to validate</param></param>
 protected void WaitForLoad(WebElement webElement)
 {
     try
     {
         Validate.Exists(webElement);
     }
     catch (Ranorex.ValidationException e)
     {
         throw new Exception(String.Format("Failed to wait for page to load since failed to validate existence of {0}.", webElement.GetPath().ToString()), e);
     }
 }
コード例 #13
0
        public void ClickShouldBeIgnoredWhenNotApplicable()
        {
            var nav = new Mock<INavigation>();

            var htmlNode = new HtmlNodeBuilder("<div>This is not a link</div>").Build();

            var webElement = new WebElement(htmlNode, nav.Object);
            webElement.Click();

            nav.Verify(x => x.GoToUrl(It.IsAny<string>()), Times.Never(),
                "Click should not do anything when not applied to a link.");
        }
コード例 #14
0
        public void FindElements()
        {
            var htmlNode = new HtmlNodeBuilder("<html><body>" +
                                           "<ul><li class=\"nav-item\">Item 1</li><li class=\"nav-item\">Item 2</li></ul>" +
                                           "</body></html>").Build();

            var document = new WebElement(htmlNode, null);
            var list = document.FindElements(By.ClassName("nav-item"));

            Assert.That(list.Count, Is.EqualTo(2));
            Assert.That(list[0].TagName, Is.EqualTo("li"));
            Assert.That(list[1].TagName, Is.EqualTo("li"));
        }
コード例 #15
0
ファイル: IssueView.cs プロジェクト: vik0803/CodeHub
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

			var content = System.IO.File.ReadAllText("WebCell/body.html", System.Text.Encoding.UTF8);
			_descriptionElement = new WebElement(content);
			_descriptionElement.UrlRequested = ViewModel.GoToUrlCommand.Execute;

			var content2 = System.IO.File.ReadAllText("WebCell/comments.html", System.Text.Encoding.UTF8);
			_commentsElement = new WebElement2(content2);
			_commentsElement.UrlRequested = ViewModel.GoToUrlCommand.Execute;

			NavigationItem.RightBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Compose, (s, e) => ViewModel.GoToEditCommand.Execute(null));
            NavigationItem.RightBarButtonItem.Enabled = false;
            ViewModel.Bind(x => x.Issue, RenderIssue);
            ViewModel.BindCollection(x => x.Comments, (e) => RenderComments());
        }
コード例 #16
0
        public void GetAttribute()
        {
            var htmlNode = new HtmlNodeBuilder("<a href=\"http://www.google.com\">Google</a>").Build();

            var element = new WebElement(htmlNode, null);

            Assert.That(element.GetAttribute("href"), Is.EqualTo("http://www.google.com"));
        }
コード例 #17
0
        public string ValidMassage()
        {
            WebElement error = new WebElement().ByXPath("//div[@id='distributionBalance:sumInputMsg']//span[@class='ui-message-error-detail']");

            return(error.Text);
        }
コード例 #18
0
ファイル: Actions.cs プロジェクト: florentbr/SeleniumBasic
 private void act_mouse_release(WebElement element) {
     if (element != null)
         _mouse.moveTo(element);
     _mouse.Release();
     _isMouseDown = false;
 }
コード例 #19
0
 public void Load(string html)
 {
     _document = _builder.FromHtml(html);
     Document = MapDoc(_document);
 }
コード例 #20
0
ファイル: Actions.cs プロジェクト: florentbr/SeleniumBasic
 /// <summary>
 /// Clicks an element.
 /// </summary>
 /// <param name="element">The element to click. If None, clicks on current mouse position.</param>
 /// <returns>Self</returns>
 public Actions Click(WebElement element = null) {
     _actions.Add(() => act_click(element));
     return this;
 }
コード例 #21
0
ファイル: Actions.cs プロジェクト: florentbr/SeleniumBasic
 private void act_mouse_press(WebElement element) {
     if (element != null)
         _mouse.moveTo(element);
     _mouse.ClickAndHold();
     _isMouseDown = true;
 }
コード例 #22
0
        public void Text()
        {
            var htmlNode = new HtmlNodeBuilder("<div>\r\nHello World        \r\n</div>").Build();

            var element = new WebElement(htmlNode, null);
            var textInAnElement = element.Text;

            Assert.That(textInAnElement, Is.EqualTo("Hello World"));
        }
コード例 #23
0
ファイル: TouchScreen.cs プロジェクト: thomb1/SeleniumBasic
 /// <summary>
 /// Scroll on the touch screen using finger based motion events.
 /// </summary>
 /// <param name="element">ID of the element where the scroll starts.</param>
 /// <param name="xoffset">{number} The x offset in pixels to scrollby.</param>
 /// <param name="yoffset">{number} The y offset in pixels to scrollby</param>
 public TouchScreen ScrollFrom(WebElement element, int xoffset, int yoffset) {
     _session.Send(RequestMethod.POST, _baseUri + "/scroll", "element", element.Id, "xoffset", xoffset, "yoffset", yoffset);
     return this;
 }
コード例 #24
0
ファイル: TouchScreen.cs プロジェクト: thomb1/SeleniumBasic
 /// <summary>
 /// Flick on the touch screen using finger motion events.
 /// </summary>
 /// <param name="element">ID of the element where the flick starts.</param>
 /// <param name="xoffset">{number} The x offset in pixels to flick by.</param>
 /// <param name="yoffset">{number} The y offset in pixels to flick by.</param>
 /// <param name="speed">{number} The speed in pixels per seconds.</param>
 public TouchScreen FlickFrom(WebElement element, int xoffset, int yoffset, int speed) {
     _session.Send(RequestMethod.POST, _baseUri + "/flick", "element", element.Id, "xoffset", xoffset, "yoffset", yoffset, "speed", speed);
     return this;
 }
コード例 #25
0
ファイル: Actions.cs プロジェクト: florentbr/SeleniumBasic
 private void act_send_keys(string keys, WebElement element) {
     if (element != null) {
         act_mouse_mouve(element);
         act_mouse_click();
     }
     act_send_keys(keys);
 }
コード例 #26
0
        public string ConstructionPage()
        {//Равномерное
            EvenlyWE       = new WebElement().ByXPath("//*[text()='Равномерное']");
            DifferentSumWE = new WebElement().ByXPath("//*[text()='Одна сумма для всех']");
            OneSumToAllWE  = new WebElement().ByXPath("//*[text()='Различные суммы']");

            DistributionWE = new WebElement().ByXPath("//a/span[contains(text(),'Распределить баланс')]");
            SaveTemplateWE = new WebElement().ByXPath("//a/span[contains(text(),'Сохранить шаблон распределения')]");
            CancelWE       = new WebElement().ByXPath("//a/span[contains(text(),'Отменить распределение')]");

            RepeatDistributionWE  = new WebElement().ByXPath("//div[contains(@id,'repeatCheckBox')]");
            FinishSumPanelWE      = new WebElement().ByXPath("//div[contains(@id,'finishSumPanel')]");
            DistributionBalanceWE = new WebElement().ByXPath("//*[@id='distributionBalance']/div[1]/div[2]/div/span");
            AbonentsListWE        = new WebElement().ByXPath("//tbody[@id='distributionBalance:abonents_data']");
            EvenlySumInputWE      = new WebElement().ByXPath("//input[contains(@id,'distributionBalance') and contains(@id,'umInput')]");
            ContractInfo          = new WebElement().ByXPath("//*[@id='distributionBalance']/div[1]/div[2]");//*[@id="distributionBalance"]/div[1]/div[2]/text()
            BackMCP = new WebElement().ByXPath("//*[@id='distributionBalance']/div[4]/div[2]/a");

            if (!EvenlyWE.Displayed)
            {
                return("Не отображены элементы интерфейса: ссылка Равномерное");
            }
            if (!DifferentSumWE.Displayed)
            {
                return("Не отображены элементы интерфейса: ссылка Одна сумма на всех");
            }
            if (!OneSumToAllWE.Displayed)
            {
                return("Не отображены элементы интерфейса: ссылка Различные суммы");
            }

            if (!DistributionWE.Displayed)
            {
                return("Не отображены элементы интерфейса: кнопка Распределить баланс");
            }
            if (!SaveTemplateWE.Displayed)
            {
                return("Не отображены элементы интерфейса: список Сохранить шаблон");
            }
            if (!CancelWE.Displayed)
            {
                return("Не отображены элементы интерфейса: ссылка Отменить распределение");
            }
            if (!RepeatDistributionWE.Displayed)
            {
                return("Не отображены элементы интерфейса: чекбокс Повторять распределение");
            }
            if (!FinishSumPanelWE.Displayed)
            {
                return("Не отображены элементы интерфейса: Итоговая сумма");
            }

            if (!DistributionBalanceWE.Displayed)
            {
                return("Не отображены элементы интерфейса: Баланс");
            }
            if (!AbonentsListWE.Displayed)
            {
                return("Не отображены элементы интерфейса: Список абонентов");
            }
            if (!EvenlySumInputWE.Displayed)
            {
                return("Не отображены элементы интерфейса: Поле ввода суммы распределения");
            }
            if (!ContractInfo.Displayed)
            {
                return("Не отображены элементы интерфейса: Информация о договоре");
            }
            if (!BackMCP.Displayed)
            {
                return("Не отображены элементы интерфейса: ссылка Назад к выбору абонентов");
            }

            return("success");
        }
コード例 #27
0
ファイル: Mouse.cs プロジェクト: LightHouse6/SeleniumBasic
 /// <summary>
 /// Move the mouse to the specificed element.
 /// </summary>
 /// <param name="element">Opaque ID assigned to the element to move to, as described in the WebElement JSON Object. If not specified or is null, the offset is relative to current position of the mouse.</param>
 public Mouse moveTo(WebElement element) {
     _session.Send(RequestMethod.POST, "/moveto", "element", element.Id);
     return this;
 }
コード例 #28
0
ファイル: TouchScreen.cs プロジェクト: thomb1/SeleniumBasic
 /// <summary>
 /// Single tap on the touch enabled device.
 /// </summary>
 /// <param name="element">ID of the element to single tap on.</param>
 public TouchScreen Tap(WebElement element) {
     _session.Send(RequestMethod.POST, _baseUri + "/click", "element", element.Id);
     return this;
 }
コード例 #29
0
        public void TagName()
        {
            var htmlNode = new HtmlNodeBuilder("<div>Hello DIV Tag</div>").Build();

            var element = new WebElement(htmlNode, null);

            Assert.That(element.TagName, Is.EqualTo("div"));
        }
コード例 #30
0
        private static WebElement Map(IElement node)
        {
            if (node == null)
                return null;

            var el = new WebElement(value => node.SetAttribute("value", value))
            {
                Attributes = node.Attributes.ToDictionary(x => x.Name, y => y.Value),
                TagName = node.TagName,
                Text = node.TextContent,
                InnerHtml = node.InnerHtml,
                OuterHtml = node.OuterHtml
            };

            el.OnQuerySelector(query => Map(node.QuerySelector(query)));
            el.OnQuerySelectorAll(query => node.QuerySelectorAll(query).Select(Map));

            return el;
        }
コード例 #31
0
ファイル: Actions.cs プロジェクト: florentbr/SeleniumBasic
 private void act_mouse_mouve(WebElement element) {
     if (element != null)
         _mouse.moveTo(element);
 }
コード例 #32
0
ファイル: SelectElement.cs プロジェクト: thomb1/SeleniumBasic
 private static void UnsetSelected(WebElement option) {
     if (option.IsSelected)
         option.Click();
 }
コード例 #33
0
 public static IWebElement FindElementFromHere(this WebElement element, By locator)
 {
     return(FindElementFromHere(element.Container.Element, locator));
 }