/// <summary> /// 通过css selector 获取元素 /// 包含iframe处理格式#iframe::.selector /// </summary> /// <param name="browser"></param> /// <param name="selector"></param> /// <returns></returns> public ElementCollection SelectMany(string selector) { while (Busy) { Thread.Sleep(50); Application.DoEvents(); } BrowserWindow watinBrowser = new BrowserWindow(this); int index = selector.IndexOf("::"); if (index != -1) { var iframeSelector = selector.Substring(0, index); var subSelector = selector.Substring(index + 2); Frame frame = this.WatinBrowser.Frames.Filter(WatiN.Core.Find.BySelector(iframeSelector)).First(); index = subSelector.IndexOf("::"); //iframe嵌套iframe的情况 if (index != -1) { iframeSelector = subSelector.Substring(0, index); frame = watinBrowser.Frames.Filter(WatiN.Core.Find.BySelector(iframeSelector)).First(); subSelector = subSelector.Substring(index + 2); } return(frame.Elements.Filter(WatiN.Core.Find.BySelector(subSelector))); } else { QuerySelectorConstraint constraint = WatiN.Core.Find.BySelector(selector); var elements = watinBrowser.Elements.Filter(constraint); return(elements); } }
public void Should_return_selector_string_when_calling_WriteDescriptionTo() { // GIVEN var constraint = new QuerySelectorConstraint(".Return >this"); var sb = new StringBuilder(); // WHEN constraint.WriteDescriptionTo(new StringWriter(sb)); // THEN Assert.That(sb.ToString(), Is.EqualTo("Selector = '.Return >this'")); }
public void Should_not_find_div_when_given_selector_returns_an_input() { ExecuteTest(browser => { // GIVEN var querySelectorConstraint = new QuerySelectorConstraint("input"); // WHEN var div = browser.Div(querySelectorConstraint); // THEN Assert.That(div.Exists, Is.False); }); }
public void Should_filter_input_elements_with_given_selector_filter() { ExecuteTest(browser => { // GIVEN var querySelectorConstraint = new QuerySelectorConstraint("input"); // WHEN var elements = browser.Elements.Filter(querySelectorConstraint); // THEN Assert.That(elements.Count, Is.EqualTo(19)); }); }
public void Should_be_able_to_use_double_quotes_in_selector_string() { ExecuteTest(browser => { // GIVEN var querySelectorConstraint = new QuerySelectorConstraint("input[name=\"textinput1\"]"); // WHEN var element = browser.Element(querySelectorConstraint); // THEN Assert.That(element.Exists, Is.True); }); }
public void Should_not_find_element_not_inside_container_element() { ExecuteTest(browser => { // GIVEN var querySelectorConstraint = new QuerySelectorConstraint("#popupid"); var containerElement = browser.Form("FormInputElement"); // WHEN var element = containerElement.Element(querySelectorConstraint); // THEN Assert.That(element.Exists, Is.False); }); }
public void Should_find_element() { ExecuteTest(browser => { // GIVEN var querySelectorConstraint = new QuerySelectorConstraint("#popupid"); // WHEN var element = browser.Element(querySelectorConstraint); // THEN Assert.That(element.Exists, Is.True); Assert.That(element.Id, Is.EqualTo("popupid")); }); }
public void Should_only_element_inside_container_element() { ExecuteTest(browser => { // GIVEN var querySelectorConstraint = new QuerySelectorConstraint("#popupid"); var containerElement = browser.Form("Form"); // WHEN var element = containerElement.Element(querySelectorConstraint); // THEN Assert.That(element.Exists, Is.True); Assert.That(element.Id, Is.EqualTo("popupid")); }); }