void EnsureScriptIsLoaded(IJavaScriptExecutor scriptExecutor) { if (!IsScriptLoaded(scriptExecutor)) { BigScriptRunner.RunBigScript(scriptExecutor, ResourceLoader.LoadResourceRelativeToType(typeof(ByJQuery), resourceLocation)); } }
public void Init() { this.webDriver = MockRepository.GenerateStub<IWebDriver>(); this.javaScriptExecutor = MockRepository.GenerateStub<IJavaScriptExecutor>(); this.webDriver.Url = "http://supersite.com/myhome/page.aspx"; this.page = ContainerFactory.Page<SimplePageForTest>(this.webDriver, this.javaScriptExecutor); }
public AxisComponent(IWebDriver driver) { axisPage = driver; jsExecutor = driver as IJavaScriptExecutor; axis = null; PageFactory.InitElements(axisPage, this); }
public void Init() { var mock = MockRepository.GenerateMock(typeof(IWebDriver), new[] { typeof(IJavaScriptExecutor) }); this.webDriver = (IWebDriver)mock; this.javaScriptExecutor = (IJavaScriptExecutor)mock; this.navigation = MockRepository.GenerateStub<INavigation>(); }
public JavaScriptExecutor(IWebDriver webDriver) { _javaScriptExecutor = webDriver as IJavaScriptExecutor; if (_javaScriptExecutor == null) { throw new TestLibsException($"Can't init javascript executor for webdriver: {webDriver}"); } }
public void SetUpEnvironment() { if (driver is IJavaScriptExecutor) { executor = (IJavaScriptExecutor)driver; } driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromMilliseconds(0)); }
public WebDriverFacade(IWebDriver web, Request request, ITakesScreenshot ss = null, IJavaScriptExecutor js = null) { _request = request; _web = web; _ss = ss ?? (ITakesScreenshot)web; _js = js ?? (IJavaScriptExecutor)web; web.Manage().Timeouts().SetScriptTimeout(new TimeSpan(0, 5, 0)); }
public void Setup() { driver = new FirefoxDriver(); js = driver as IJavaScriptExecutor; zIndexDNS = ""; zIndexFakel = ""; zIndexAmbar = ""; zIndexPlaces = ""; }
/// <summary> /// Creates a new instance of <see cref="NgWebDriver"/> by wrapping a <see cref="IWebDriver"/> instance. /// </summary> /// <param name="driver">The configured webdriver instance.</param> /// <param name="rootElement"> /// The CSS selector for an element on which to find Angular. /// <para/> /// This is usually 'body' but if your ng-app is on a subsection of the page it may be a subelement. /// </param> /// <param name="mockModules"> /// The modules to load before Angular whenever Url setter or Navigate().GoToUrl() is called. /// </param> public NgWebDriver(IWebDriver driver, string rootElement, params NgModule[] mockModules) { if (!(driver is IJavaScriptExecutor)) { throw new NotSupportedException("The WebDriver instance must implement the IJavaScriptExecutor interface."); } this.driver = driver; this.jsExecutor = (IJavaScriptExecutor)driver; this.rootElement = rootElement; this.mockModules = mockModules; }
private void _FormTest(IJavaScriptExecutor js) { var form = new Form(); string json = DFormSerializer.serialize(form); Assert.IsFalse(String.IsNullOrEmpty(json)); Assert.IsTrue(js.CreateDForm(json)); IWebDriver driver = js as IWebDriver; IWebElement testTextInput = driver.FindElement(By.Id("test_form")); Assert.AreEqual(testTextInput.TagName.ToLower(),"form","form tag was not form! it was:" + testTextInput.TagName); }
public void GetLogsBack(IJavaScriptExecutor javaScriptExecutor) { var loggs = javaScriptExecutor.ExecuteScript(GetLogs); var collection = loggs as ReadOnlyCollection<object>; foreach (var item in collection) { var logObject = item as Dictionary<string, object>; } }
public static void Inject(IJavaScriptExecutor executor) { try { if ((bool)executor.ExecuteScript("return typeof fluentjQuery == 'undefined'")) { executor.ExecuteScript(sizzleScriptInjection); } } catch { } }
public when_executing_script_and_changing_return_type_with_UiComponent() { SUT = new ScriptExecutor(null, null, null); _fakeJavaScriptExecutor = Substitute.For<IJavaScriptExecutor>(); _fakeJavaScriptExecutor .ExecuteScript(Arg.Any<string>()) .Returns("true"); _result = SUT.ScriptAndReturn(executedScript, _expectedType, _fakeJavaScriptExecutor); }
public static void InjectSizzle(IJavaScriptExecutor driver) { string _compiledSizzleString = @"(function(){function y(a,b,c,d,f,e){for(var f=0,h=d.length;f<h;f++){var g=d[f];if(g){for(var i=!1,g=g[a];g;){if(g.sizcache===c){i=d[g.sizset];break}if(g.nodeType===1&&!e)g.sizcache=c,g.sizset=f;if(g.nodeName.toLowerCase()===b){i=g;break}g=g[a]}d[f]=i}}}function z(a,b,c,d,f,e){for(var f=0,h=d.length;f<h;f++){var g=d[f];if(g){for(var j=!1,g=g[a];g;){if(g.sizcache===c){j=d[g.sizset];break}if(g.nodeType===1){if(!e)g.sizcache=c,g.sizset=f;if(typeof b!==""string""){if(g===b){j=!0;break}}else if(i.filter(b, [g]).length>0){j=g;break}}g=g[a]}d[f]=j}}}var w=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['""][^'""]*['""]|[^\[\]'""]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,x=0,A=Object.prototype.toString,t=!1,B=!0,p=/\\/g,u=/\W/;[0,0].sort(function(){B=!1;return 0});var i=function(a,b,c,d){var c=c||[],f=b=b||document;if(b.nodeType!==1&&b.nodeType!==9)return[];if(!a||typeof a!==""string"")return c;var e,h,g,l,s,m=!0,n=i.isXML(b),k=[],p=a;do if(w.exec(""""),e=w.exec(p))if(p=e[3],k.push(e[1]), e[2]){l=e[3];break}while(e);if(k.length>1&&D.exec(a))if(k.length===2&&j.relative[k[0]])h=C(k[0]+k[1],b);else for(h=j.relative[k[0]]?[b]:i(k.shift(),b);k.length;)a=k.shift(),j.relative[a]&&(a+=k.shift()),h=C(a,h);else if(!d&&k.length>1&&b.nodeType===9&&!n&&j.match.ID.test(k[0])&&!j.match.ID.test(k[k.length-1])&&(e=i.find(k.shift(),b,n),b=e.expr?i.filter(e.expr,e.set)[0]:e.set[0]),b){e=d?{expr:k.pop(),set:o(d)}:i.find(k.pop(),k.length===1&&(k[0]===""~""||k[0]===""+"")&&b.parentNode?b.parentNode:b,n);h= e.expr?i.filter(e.expr,e.set):e.set;for(k.length>0?g=o(h):m=!1;k.length;)e=s=k.pop(),j.relative[s]?e=k.pop():s="""",e==null&&(e=b),j.relative[s](g,e,n)}else g=[];g||(g=h);g||i.error(s||a);if(A.call(g)===""[object Array]"")if(m)if(b&&b.nodeType===1)for(a=0;g[a]!=null;a++)g[a]&&(g[a]===!0||g[a].nodeType===1&&i.contains(b,g[a]))&&c.push(h[a]);else for(a=0;g[a]!=null;a++)g[a]&&g[a].nodeType===1&&c.push(h[a]);else c.push.apply(c,g);else o(g,c);l&&(i(l,f,c,d),i.uniqueSort(c));return c};i.uniqueSort=function(a){if(v&& (t=B,a.sort(v),t))for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1);return a};i.matches=function(a,b){return i(a,null,null,b)};i.matchesSelector=function(a,b){return i(b,null,null,[a]).length>0};i.find=function(a,b,c){var d;if(!a)return[];for(var f=0,e=j.order.length;f<e;f++){var h,g=j.order[f];if(h=j.leftMatch[g].exec(a)){var i=h[1];h.splice(1,1);if(i.substr(i.length-1)!==""\\""&&(h[1]=(h[1]||"""").replace(p,""""),d=j.find[g](h,b,c),d!=null)){a=a.replace(j.match[g],"""");break}}}d||(d=typeof b.getElementsByTagName!== ""undefined""?b.getElementsByTagName(""*""):[]);return{set:d,expr:a}};i.filter=function(a,b,c,d){for(var f,e,h=a,g=[],l=b,o=b&&b[0]&&i.isXML(b[0]);a&&b.length;){for(var m in j.filter)if((f=j.leftMatch[m].exec(a))!=null&&f[2]){var n,k,p=j.filter[m];k=f[1];e=!1;f.splice(1,1);if(k.substr(k.length-1)!==""\\""){l===g&&(g=[]);if(j.preFilter[m])if(f=j.preFilter[m](f,l,c,g,d,o)){if(f===!0)continue}else e=n=!0;if(f)for(var q=0;(k=l[q])!=null;q++)if(k){n=p(k,f,q,l);var r=d^!!n;c&&n!=null?r?e=!0:l[q]=!1:r&&(g.push(k), e=!0)}if(n!==void 0){c||(l=g);a=a.replace(j.match[m],"""");if(!e)return[];break}}}if(a===h)if(e==null)i.error(a);else break;h=a}return l};i.error=function(a){throw""Syntax error, unrecognized expression: ""+a;};var j=i.selectors={order:[""ID"",""NAME"",""TAG""],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['""]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['""]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['""])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['""]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{""class"":""className"",""for"":""htmlFor""},attrHandle:{href:function(a){return a.getAttribute(""href"")},type:function(a){return a.getAttribute(""type"")}},relative:{""+"":function(a,b){var c= typeof b===""string"",d=c&&!u.test(b),c=c&&!d;d&&(b=b.toLowerCase());for(var d=0,f=a.length,e;d<f;d++)if(e=a[d]){for(;(e=e.previousSibling)&&e.nodeType!==1;);a[d]=c||e&&e.nodeName.toLowerCase()===b?e||!1:e===b}c&&i.filter(b,a,!0)},"">"":function(a,b){var c,d=typeof b===""string"",f=0,e=a.length;if(d&&!u.test(b))for(b=b.toLowerCase();f<e;f++){if(c=a[f])c=c.parentNode,a[f]=c.nodeName.toLowerCase()===b?c:!1}else{for(;f<e;f++)(c=a[f])&&(a[f]=d?c.parentNode:c.parentNode===b);d&&i.filter(b,a,!0)}},"""":function(a, b,c){var d,f=x++,e=z;typeof b===""string""&&!u.test(b)&&(d=b=b.toLowerCase(),e=y);e(""parentNode"",b,f,a,d,c)},""~"":function(a,b,c){var d,f=x++,e=z;typeof b===""string""&&!u.test(b)&&(d=b=b.toLowerCase(),e=y);e(""previousSibling"",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!==""undefined""&&!c)return(a=b.getElementById(a[1]))&&a.parentNode?[a]:[]},NAME:function(a,b){if(typeof b.getElementsByName!==""undefined""){for(var c=[],d=b.getElementsByName(a[1]),f=0,e=d.length;f<e;f++)d[f].getAttribute(""name"")=== a[1]&&c.push(d[f]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!==""undefined"")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,f,e){a="" ""+a[1].replace(p,"""")+"" "";if(e)return a;for(var e=0,h;(h=b[e])!=null;e++)h&&(f^(h.className&&("" ""+h.className+"" "").replace(/[\t\n\r]/g,"" "").indexOf(a)>=0)?c||d.push(h):c&&(b[e]=!1));return!1},ID:function(a){return a[1].replace(p,"""")},TAG:function(a){return a[1].replace(p,"""").toLowerCase()},CHILD:function(a){if(a[1]=== ""nth""){a[2]||i.error(a[0]);a[2]=a[2].replace(/^\+|\s*/g,"""");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]===""even""&&""2n""||a[2]===""odd""&&""2n+1""||!/\D/.test(a[2])&&""0n+""+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0;a[3]=b[3]-0}else a[2]&&i.error(a[0]);a[0]=x++;return a},ATTR:function(a,b,c,d,f,e){b=a[1]=a[1].replace(p,"""");!e&&j.attrMap[b]&&(a[1]=j.attrMap[b]);a[4]=(a[4]||a[5]||"""").replace(p,"""");a[2]===""~=""&&(a[4]="" ""+a[4]+"" "");return a},PSEUDO:function(a,b,c,d,f){if(a[1]===""not"")if((w.exec(a[3])||"""").length>1|| /^\w/.test(a[3]))a[3]=i(a[3],null,null,b);else return a=i.filter(a[3],b,c,1^f),c||d.push.apply(d,a),!1;else if(j.match.POS.test(a[0])||j.match.CHILD.test(a[0]))return!0;return a},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!==""hidden""},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild}, has:function(a,b,c){return!!i(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute(""type""),c=a.type;return a.nodeName.toLowerCase()===""input""&&""text""===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()===""input""&&""radio""===a.type},checkbox:function(a){return a.nodeName.toLowerCase()===""input""&&""checkbox""===a.type},file:function(a){return a.nodeName.toLowerCase()===""input""&&""file""===a.type},password:function(a){return a.nodeName.toLowerCase()=== ""input""&&""password""===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b===""input""||b===""button"")&&""submit""===a.type},image:function(a){return a.nodeName.toLowerCase()===""input""&&""image""===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b===""input""||b===""button"")&&""reset""===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b===""input""&&""button""===a.type||b===""button""},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a=== a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var f=b[1],e=j.filters[f];if(e)return e(a,c,b,d);else if(f===""contains"")return(a.textContent||a.innerText||i.getText([a])||"""").indexOf(b[3])>= 0;else if(f===""not""){b=b[3];c=0;for(d=b.length;c<d;c++)if(b[c]===a)return!1;return!0}else i.error(f)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case ""only"":case ""first"":for(;d=d.previousSibling;)if(d.nodeType===1)return!1;if(c===""first"")return!0;d=a;case ""last"":for(;d=d.nextSibling;)if(d.nodeType===1)return!1;return!0;case ""nth"":var c=b[2],f=b[3];if(c===1&&f===0)return!0;var e=b[0],h=a.parentNode;if(h&&(h.sizcache!==e||!a.nodeIndex)){for(var g=0,d=h.firstChild;d;d=d.nextSibling)if(d.nodeType=== 1)d.nodeIndex=++g;h.sizcache=e}d=a.nodeIndex-f;return c===0?d===0:d%c===0&&d/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute(""id"")===b},TAG:function(a,b){return b===""*""&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return("" ""+(a.className||a.getAttribute(""class""))+"" "").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],c=j.attrHandle[c]?j.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),d=c+"""",f=b[2],e=b[4];return c==null?f===""!="":f===""=""?d===e:f===""*=""?d.indexOf(e)>= 0:f===""~=""?("" ""+d+"" "").indexOf(e)>=0:!e?d&&c!==!1:f===""!=""?d!==e:f===""^=""?d.indexOf(e)===0:f===""$=""?d.substr(d.length-e.length)===e:f===""|=""?d===e||d.substr(0,e.length+1)===e+""-"":!1},POS:function(a,b,c,d){var f=j.setFilters[b[2]];if(f)return f(a,c,b,d)}}},D=j.match.POS,E=function(a,b){return""\\""+(b-0+1)},q;for(q in j.match)j.match[q]=RegExp(j.match[q].source+/(?![^\[]*\])(?![^\(]*\))/.source),j.leftMatch[q]=RegExp(/(^(?:.|\r|\n)*?)/.source+j.match[q].source.replace(/\\(\d+)/g,E));var o=function(a, b){a=Array.prototype.slice.call(a,0);return b?(b.push.apply(b,a),b):a};try{Array.prototype.slice.call(document.documentElement.childNodes,0)}catch(F){o=function(a,b){var c=0,d=b||[];if(A.call(a)===""[object Array]"")Array.prototype.push.apply(d,a);else if(typeof a.length===""number"")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var v,r;document.documentElement.compareDocumentPosition?v=function(a,b){return a===b?(t=!0,0):!a.compareDocumentPosition||!b.compareDocumentPosition? a.compareDocumentPosition?-1:1:a.compareDocumentPosition(b)&4?-1:1}:(v=function(a,b){if(a===b)return t=!0,0;else if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,f=[],e=[];c=a.parentNode;d=b.parentNode;var h=c;if(c===d)return r(a,b);else if(c){if(!d)return 1}else return-1;for(;h;)f.unshift(h),h=h.parentNode;for(h=d;h;)e.unshift(h),h=h.parentNode;c=f.length;d=e.length;for(h=0;h<c&&h<d;h++)if(f[h]!==e[h])return r(f[h],e[h]);return h===c?r(a,e[h],-1):r(f[h],b,1)},r=function(a, b,c){if(a===b)return c;for(a=a.nextSibling;a;){if(a===b)return-1;a=a.nextSibling}return 1});i.getText=function(a){for(var b="""",c,d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=i.getText(c.childNodes));return b};(function(){var a=document.createElement(""div""),b=""script""+(new Date).getTime(),c=document.documentElement;a.innerHTML=""<a name='""+b+""'/>"";c.insertBefore(a,c.firstChild);if(document.getElementById(b))j.find.ID=function(a,b,c){if(typeof b.getElementById!== ""undefined""&&!c)return(b=b.getElementById(a[1]))?b.id===a[1]||typeof b.getAttributeNode!==""undefined""&&b.getAttributeNode(""id"").nodeValue===a[1]?[b]:void 0:[]},j.filter.ID=function(a,b){var c=typeof a.getAttributeNode!==""undefined""&&a.getAttributeNode(""id"");return a.nodeType===1&&c&&c.nodeValue===b};c.removeChild(a);c=a=null})();(function(){var a=document.createElement(""div"");a.appendChild(document.createComment(""""));if(a.getElementsByTagName(""*"").length>0)j.find.TAG=function(a,c){var d=c.getElementsByTagName(a[1]); if(a[1]===""*""){for(var f=[],e=0;d[e];e++)d[e].nodeType===1&&f.push(d[e]);d=f}return d};a.innerHTML=""<a href='#'></a>"";if(a.firstChild&&typeof a.firstChild.getAttribute!==""undefined""&&a.firstChild.getAttribute(""href"")!==""#"")j.attrHandle.href=function(a){return a.getAttribute(""href"",2)};a=null})();document.querySelectorAll&&function(){var a=i,b=document.createElement(""div"");b.innerHTML=""<p class='TEST'></p>"";if(!(b.querySelectorAll&&b.querySelectorAll("".TEST"").length===0)){i=function(b,c,e,h){c=c|| document;if(!h&&!i.isXML(c)){var g=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(g&&(c.nodeType===1||c.nodeType===9))if(g[1])return o(c.getElementsByTagName(b),e);else if(g[2]&&j.find.CLASS&&c.getElementsByClassName)return o(c.getElementsByClassName(g[2]),e);if(c.nodeType===9){if(b===""body""&&c.body)return o([c.body],e);else if(g&&g[3]){var l=c.getElementById(g[3]);if(l&&l.parentNode){if(l.id===g[3])return o([l],e)}else return o([],e)}try{return o(c.querySelectorAll(b),e)}catch(p){}}else if(c.nodeType=== 1&&c.nodeName.toLowerCase()!==""object""){var g=c,m=(l=c.getAttribute(""id""))||""__sizzle__"",n=c.parentNode,k=/^\s*[+~]/.test(b);l?m=m.replace(/'/g,""\\$&""):c.setAttribute(""id"",m);if(k&&n)c=c.parentNode;try{if(!k||n)return o(c.querySelectorAll(""[id='""+m+""'] ""+b),e)}catch(q){}finally{l||g.removeAttribute(""id"")}}}return a(b,c,e,h)};for(var c in a)i[c]=a[c];b=null}}();(function(){var a=document.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var c= !b.call(document.createElement(""div""),""div""),d=!1;try{b.call(document.documentElement,""[test!='']:sizzle"")}catch(f){d=!0}i.matchesSelector=function(a,f){f=f.replace(/\=\s*([^'""\]]*)\s*\]/g,""='$1']"");if(!i.isXML(a))try{if(d||!j.match.PSEUDO.test(f)&&!/!=/.test(f)){var g=b.call(a,f);if(g||!c||a.document&&a.document.nodeType!==11)return g}}catch(l){}return i(f,null,null,[a]).length>0}}})();(function(){var a=document.createElement(""div"");a.innerHTML=""<div class='test e'></div><div class='test'></div>""; if(a.getElementsByClassName&&a.getElementsByClassName(""e"").length!==0&&(a.lastChild.className=""e"",a.getElementsByClassName(""e"").length!==1))j.order.splice(1,0,""CLASS""),j.find.CLASS=function(a,c,d){if(typeof c.getElementsByClassName!==""undefined""&&!d)return c.getElementsByClassName(a[1])},a=null})();i.contains=document.documentElement.contains?function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:document.documentElement.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)& 16)}:function(){return!1};i.isXML=function(a){return(a=(a?a.ownerDocument||a:0).documentElement)?a.nodeName!==""HTML"":!1};var C=function(a,b){for(var c,d=[],f="""",e=b.nodeType?[b]:b;c=j.match.PSEUDO.exec(a);)f+=c[0],a=a.replace(j.match.PSEUDO,"""");a=j.relative[a]?a+""*"":a;c=0;for(var h=e.length;c<h;c++)i(a,e[c],d);return i.filter(f,d)};window.Sizzle=i})();"; try { driver.ExecuteScript( "var scriptSource = " + _compiledSizzleString + @" var newScript = document.createElement('script'); newScript.type = 'text/javascript'; if (typeof (newScript.appendChild) == 'function') { var scriptContent = document.createTextNode(scriptSource); newScript.appendChild(scriptContent); } else { newScript.text = scriptSource; } var headID = document.getElementsByTagName('head')[0]; headID.appendChild(newScript);"); } catch (Exception) { } }
bool IsScriptLoaded(IJavaScriptExecutor scriptExecutor) { bool loaded; try { loaded = (Boolean)scriptExecutor.ExecuteScript("return typeof(" + javascriptGlobal + ")==='function'"); } catch (Exception e) { loaded = false; } return loaded; }
static Int32 Main(string[] args) { loadConfigFile(); driver = getDriver(browser); js = (IJavaScriptExecutor)driver; CourtFilingTests cft = new CourtFilingTests(); cft.RunFirst(); cleanup(); Environment.Exit(0); return 0; }
public static void EnsureSizzleIsLoaded(IJavaScriptExecutor scriptExecutor) { if (!SizzleLoaded(scriptExecutor)) { InjectSizzle(scriptExecutor); var ieDriver = scriptExecutor as OpenQA.Selenium.IE.InternetExplorerDriver; if (ieDriver != null) { // again for IE InjectSizzle(ieDriver); } } }
public void Setup() { #region IWebDriver Setup IList<Cookie> cookies = new List<Cookie>(); cookies.Add(new Cookie("s_cc","=true")); _web = Substitute.For<IWebDriver>(); _web.Manage().Cookies.AllCookies.Returns(new ReadOnlyCollection<Cookie>(cookies)); #endregion #region IJavascriptExecutor Setup IList<object> _dimensions = new List<object>(new object[] {800,600}); var _dimensionsCollection = new ReadOnlyCollection<object>(_dimensions); _js = Substitute.For<IJavaScriptExecutor>(); _js.ExecuteScript(Arg.Is(Javascript.Viewport)).Returns(_dimensionsCollection); IList<object> _browserInfo = new List<object>(new object[] { "firefox", "10.1", "WINDOWS" }); var _browserInfoCollection = new ReadOnlyCollection<object>(_browserInfo); _js.ExecuteScript(Arg.Is(Javascript.Info)).Returns(_browserInfoCollection); IList<object> _resources = new List<object>(new[] { new Resource { Uri = "http://c.mfcreativedev.com/webparts/banner/Banner.js?v=c5589edb", StatusCode = HttpStatusCode.OK, StatusDescription = "OK", Headers = new List<string> { "Content-Length:194", "Cache-Control:public, must-revalidate", "Content-Type:application/x-javascript", "Date:Thu, 20 Sep 2012 17:15:03 GMT", "ETag:JsJt380DknGc4kAEEn76og==" } } }); var _resourcesCollection = new ReadOnlyCollection<object>(_resources); _js.ExecuteScript(Arg.Is(Javascript.Resources)).Returns(_resourcesCollection); #endregion #region ITakesScreenshot Setup _ss = Substitute.For<ITakesScreenshot>(); var bp = ImageUtil.ImageToBase64(new Bitmap(10, 10), ImageFormat.Png); _ss.GetScreenshot().Returns(new Screenshot(bp)); #endregion _request = new Request { Url = "http://www.google.com/", Browser = "firefox" }; _facade = new WebDriverFacade(_web,_request,_ss,_js); }
private void _RadioTest(IJavaScriptExecutor js) { var test = new RadioInput(); string json = DFormSerializer.serialize(test); Assert.IsFalse(String.IsNullOrEmpty(json)); Assert.IsTrue(js.CreateDForm(json)); IWebDriver driver = js as IWebDriver; IWebElement testTextInput = driver.FindElement(By.Id("radio_test")); Assert.AreEqual(testTextInput.TagName.ToLower(), "input", "1st radio tag name was" + testTextInput.TagName + " but is meant to be input"); Assert.IsTrue(testTextInput.Selected,"1st radio was not selected"); testTextInput = driver.FindElement(By.Id("radio_test_1")); Assert.AreEqual(testTextInput.TagName.ToLower(), "input", "2nd radio tag name was" + testTextInput.TagName + " but is meant to be input"); Assert.IsFalse(testTextInput.Selected,"2nd radio was selected"); }
/// <summary> /// Instantiates the <see cref="IReactBridge"/>. /// </summary> /// <param name="executor">The JavaScript executor.</param> /// <param name="reactCallback">The native callback handler.</param> /// <param name="nativeModulesQueueThread"> /// The native modules queue thread. /// </param> public ReactBridge( IJavaScriptExecutor executor, IReactCallback reactCallback, IMessageQueueThread nativeModulesQueueThread) { if (executor == null) throw new ArgumentNullException(nameof(executor)); if (reactCallback == null) throw new ArgumentNullException(nameof(reactCallback)); if (nativeModulesQueueThread == null) throw new ArgumentNullException(nameof(nativeModulesQueueThread)); _jsExecutor = executor; _reactCallback = reactCallback; _nativeModulesQueueThread = nativeModulesQueueThread; }
private void _TextSerializationTest(IJavaScriptExecutor js) { var test = new TextInput(); string json = DFormSerializer.serialize(test); Assert.IsFalse(String.IsNullOrEmpty(json)); Assert.IsTrue(js.CreateDForm(json)); IWebDriver driver = js as IWebDriver; IWebElement testTextInput = driver.FindElement(By.Id("test_id")); Assert.AreEqual(testTextInput.GetAttribute("value"), test.Text, "value was not the same as test objects!"); Assert.AreEqual(testTextInput.TagName.ToLower(), "input", "text input field tag was not input it was: " + testTextInput.TagName); Assert.IsTrue(testTextInput.GetAttribute("class").Contains("test_class"), "text input class was not correct it was " + testTextInput.GetAttribute("class")); Assert.AreEqual(testTextInput.GetAttribute("name"), "test_name", "text input name was not correct it was " + testTextInput.GetAttribute("name")); }
public VirtualCanvasComponent(IWebDriver driver) { virtualCanvasPage = driver; jsExecutor = driver as IJavaScriptExecutor; searchButton = null; searchTextBox = null; searchResults = null; virtualCanvas = null; layerTimelines = null; layerInfodots = null; humanityLink = null; prehistoryLink = null; lifeLink = null; earthLink = null; cosmosLink = null; PageFactory.InitElements(virtualCanvasPage, this); }
public static void Inject(IJavaScriptExecutor executor) { try { if ((bool)executor.ExecuteScript("return typeof Sizzle == 'undefined'")) { executor.ExecuteScript(sizzleScriptInjection); // IE requires a second execution if (executor is OpenQA.Selenium.IE.InternetExplorerDriver) { executor.ExecuteScript(sizzleScriptInjection); } } } catch { } }
public ReactBridgeImpl( IReactAssemblyProvider assemblyProvider, IModuleLoader moduleLoader, IJavaScriptExecutor executor, IUIManager uiManager) { _assemblyProvider = assemblyProvider; _moduleLoader = moduleLoader; _executor = executor; _uiManager = uiManager; _timer = new Timer(16.67); // _timer = new Timer(5000); _timer.Elapsed += (e, a) => { PollQueue(); }; }
public static void RunBigScript(IJavaScriptExecutor driver, string script) { driver.ExecuteScript( "var scriptSource = " + JsonConvert.SerializeObject(script) + ";" + @" var newScript = document.createElement('script'); newScript.type = 'text/javascript'; if (typeof (newScript.appendChild) == 'function') { var scriptContent = document.createTextNode(scriptSource); newScript.appendChild(scriptContent); } else { newScript.text = scriptSource; } var headID = document.getElementsByTagName('head')[0]; headID.appendChild(newScript); "); }
public static void scrollDownJS() { IJavaScriptExecutor jse = (IJavaScriptExecutor)SharedWebDriver.driver; jse.ExecuteScript("return window.scrollBy(0, 100)"); }
private object GetPendingAjaxCallsCount(IJavaScriptExecutor jsExecutor, object result) { try { result = jsExecutor.ExecuteScript( @" if (typeof jQuery != 'undefined') { // jQuery is loaded return jQuery.active; } else { // jQuery is not loaded return -1; }"); } catch (Exception e) { Log.Info("Error: " + e.Message); } return result; }
public void ExecuteJavaScript(string executionText, object obj) { IJavaScriptExecutor js = (IJavaScriptExecutor)driver; js.ExecuteScript(executionText, obj); }
public void Scroll(int position) { IJavaScriptExecutor js = driver as IJavaScriptExecutor; js.ExecuteScript($"window.scrollTo(0,{position});"); }
public string GetHeight() { IJavaScriptExecutor js = driver as IJavaScriptExecutor; return(js.ExecuteScript("return document.body.scrollHeight").ToString()); }
public static void Scroll_Page2(IJavaScriptExecutor driver, IWebElement webelement) { driver.ExecuteScript("arguments[0].scrollIntoView(true);", webelement); Thread.Sleep(500); }
static void Main(string[] args) { Console.WriteLine("How many votes?"); uint votes = 0; while (votes <= 0) { string line = Console.ReadLine(); if (!uint.TryParse(line, out votes) || votes <= 0) { Console.WriteLine("Invalid input. Input must also be bigger than 0"); } } uint totalDone = 0; try { for (; totalDone < votes; totalDone++) { using (ChromeDriver driver = new ChromeDriver()) { driver.Navigate().GoToUrl(@"https://temp-mail.org/"); IWebElement mailElement = driver.FindElement(By.XPath("//input[@data-original-title='Your temporary Email address']")); string mailAddress = mailElement.GetAttribute("value"); string mailWindowHandle = driver.WindowHandles.Last(); GoToUrlInNewTab(driver, "NameTab", @"http://www.fakenamegenerator.com/gen-random-nl-nl.php"); IWebElement addressElement = driver.FindElement(By.ClassName("address")); IWebElement nameElement = addressElement.FindElement(By.TagName("h3")); string name = nameElement.Text; IWebElement fullAddressElement = addressElement.FindElement(By.ClassName("adr")); string state = fullAddressElement.Text.Split(new string[] { " " }, StringSplitOptions.None)[1]; GoToUrlInNewTab(driver, "VoteTab", @"http://www.stoffenbeurs.nl/naaimachine-winnen-janome/?ref_id=t8447719"); driver.SwitchTo().Frame("uvembed31169"); IWebElement nameInputElement = driver.FindElement(By.Name("txt_name")); nameInputElement.Clear(); nameInputElement.SendKeys(name); IWebElement emailInputElement = driver.FindElement(By.Name("txt_email")); emailInputElement.Clear(); emailInputElement.SendKeys(mailAddress); IWebElement stateInputElement = driver.FindElement(By.Name("woonplaats")); stateInputElement.Clear(); stateInputElement.SendKeys(state); IWebElement submitElement = driver.FindElement(By.Id("lead_button")); IJavaScriptExecutor executor = (IJavaScriptExecutor)driver; executor.ExecuteScript("arguments[0].click()", submitElement); driver.SwitchTo().Window(mailWindowHandle); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(600)); wait.IgnoreExceptionTypes(typeof(NoSuchElementException), typeof(ElementNotVisibleException)); IWebElement viewMailElement = wait.Until(x => x.FindElement(By.XPath("//span[@class='glyphicon glyphicon-chevron-right']"))).FindElement(By.XPath("..")); string hrefView = viewMailElement.GetAttribute("href"); driver.Navigate().GoToUrl(hrefView); IWebElement confirmationElement = driver.FindElement(By.XPath("//a[text() = 'Bevestig mijn deelname']")); string hrefConfirmation = confirmationElement.GetAttribute("href"); driver.Navigate().GoToUrl(hrefConfirmation); CloseWindows(driver); } } Console.WriteLine(String.Format("All {0} votes done!", votes)); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(String.Format("Something went wrong, was able to do {0} votes", totalDone)); } Console.ReadKey(); }
public SuiteTests() { driver = new ChromeDriver(); js = (IJavaScriptExecutor)driver; vars = new Dictionary <String, Object>(); }
/// <summary> /// Initializes a new JQuueryFactory. /// </summary> /// <param name="driver"> Used to execute javaScript code. </param> public JQuery(IJavaScriptExecutor driver) { JavaScriptExecutor = driver; }
// Instancia a classe IJavaScriptExecutor para usar os comandos do scrool public void Scrool() { IJavaScriptExecutor js = driver as IJavaScriptExecutor; js.ExecuteScript("window.scrollBy(0,4000);"); }
// This function returns screen width public static int GetScreenWidth(IWebDriver driver) { IJavaScriptExecutor js = (IJavaScriptExecutor)driver; return(Int32.Parse(js.ExecuteScript("return screen.width").ToString())); }
private void fetchDataSetsFromTCG() { int setCount = 1; driver = new ChromeDriver(@"C:\chromedriver_win32"); //Initialize the Selenium Chrome Driver driver.Navigate().GoToUrl("https://shop.tcgplayer.com/magic?partner=MTGTCG"); //Navigate to TCG's MTG "All Sets" page var setList = driver.FindElements(By.ClassName("search-list")); //Find all elements with search-list and add to setList MySqlConnection myConnector = new MySqlConnection("server=localhost;user id=Frodo;password=m00pd00pb00p;database=mtgcarddb;"); try { myConnector.Open(); //Open connetion to MySQL Database } catch (Exception e) { Console.WriteLine("\n\nError while opening connection!\n\n"); Console.WriteLine(e); } foreach (var webElement in setList) { String text = webElement.Text; //Obtain the text from the element String setName = "defaultValue"; if (text.Contains("th Edition") == true) { text = switchOrdinalCase(text); //TCG Summary Page uses 10th, 9th, 8th, etc.; not Tenth, Ninth, Eighth } else if (text.Equals("Amonkhet Invocations")) { text = "Masterpiece+Series%3A+Amonkhet+Invocations"; //TCG uses special encoding for Amonkhet Masterpieces } else if (text.Equals("Kaladesh Inventions")) { text = "Masterpiece+Series%3A+Kaladesh+Inventions"; //TCG uses special encoding for Kaladesh Inventions } else if (text.Equals("From the Vault: Transform")) { continue; //Skip this iteration, set has not released yet } else if (text.Equals("Modern Event Deck")) { text = Uri.EscapeUriString("Magic Modern Event Deck"); } else if (text.Contains("vs.")) { text = fixDuelDecksText(text); //TCG is inconsistent with the Duel Decks on Advanced Search } else if (text.Contains("PDS: ")) { text = Uri.EscapeUriString(text.Replace("PDS: ", "Premium Deck Series: ")); //TCG spells out PDS on the Advanced Search Page } else if (text.Equals("Magic the Gathering: Gift Pack 2017")) { continue; //Skip this iteration, set has not released yet } else if (text.Equals("WPN & Gateway Promos")) { text = "WPN%2FGateway+Promos"; //TCG encodes this set differently } else if (text.Equals("Launch Party & Release Event Cards")) { text = "Launch+Party+%26+Release+Event+Promos"; //TCG encodes this set differently } else if (text.IndexOf(" ") != -1) //-1 is for when the character is not found { text = Uri.EscapeUriString(text); //URI encode the text for future navigation } Console.WriteLine(text); //Actually print out each set on the console String newUrl = "http://magic.tcgplayer.com/db/search_result.asp?Set_Name="; //Standard start for TCG Set Summary Page newUrl += text; //Add the URI Encoded Set to the end of the URL IJavaScriptExecutor js = (IJavaScriptExecutor)driver; //Create obeject to execute TCG Sort Function and open tabs js.ExecuteScript("window.open()"); driver.SwitchTo().Window(driver.WindowHandles.Last()); //Switch back to main tab driver.Navigate().GoToUrl(newUrl); //Navigate to the new URL js.ExecuteScript("SortOrder('MeanPrice DESC');"); //TCG method to sort set by Average Card Value in Descending Order var cardData = driver.FindElements(By.ClassName("default_8")); //Loop extracts card data from webpage, prints to console, and inserts into SQL Database for (int i = 8; i < cardData.Count;) { var webElem = cardData[i]; if (i < (cardData.Count - 4)) { String cardName = webElem.Text; i++; webElem = cardData[i]; String cmc = webElem.Text; i++; webElem = cardData[i]; setName = webElem.Text; i++; webElem = cardData[i]; char rarity = webElem.Text[0]; i++; webElem = cardData[i]; String num = webElem.Text; if (webElem.Text.Equals("N/A")) { num = "0"; } double highPrice = Convert.ToDouble(num.Replace("$", "")); i++; webElem = cardData[i]; num = webElem.Text; if (webElem.Text.Equals("N/A")) { num = "0"; } double medPrice = Convert.ToDouble(num.Replace("$", "")); i++; webElem = cardData[i]; num = webElem.Text; if (webElem.Text.Equals("N/A")) { num = "0"; } double lowPrice = Convert.ToDouble(num.Replace("$", "")); i++; Console.WriteLine(cardName + " " + cmc + " " + setCount + " " + rarity + " " + highPrice + " " + medPrice + " " + lowPrice); string sqlCardCmd = "insert into cards (cardName, convertedManaCost, setName, rarity, highPrice, medPrice, lowPrice) values (@cardName, @cmc," + setCount + ",@rarity," + highPrice + "," + medPrice + "," + lowPrice + ");"; MySqlCommand cardCmd = new MySqlCommand(sqlCardCmd, myConnector); cardCmd.Parameters.AddWithValue("@cardName", cardName); cardCmd.Parameters.AddWithValue("@cmc", cmc); cardCmd.Parameters.AddWithValue("@rarity", rarity); cardCmd.ExecuteNonQuery(); } else { break; //Need to skip the last 4 elements: Color, Deck Name, Creator, and Format } } js.ExecuteScript("window.close()"); //Close the tab driver.SwitchTo().Window(driver.WindowHandles.First()); //Switch back to main tab string sqlSetCmd = "insert into sets (setName, id) values (@setName," + setCount + ");"; MySqlCommand setCmd = new MySqlCommand(sqlSetCmd, myConnector); setCmd.Parameters.AddWithValue("@setName", setName); setCmd.ExecuteNonQuery(); setCount++; } System.Windows.Application.Current.Shutdown(); //Shutdown the application try { myConnector.Close(); } catch (Exception e) { Console.WriteLine("\n\nError while closing connection!\n\n"); Console.WriteLine(e); } }
/// <summary> /// Gets JS object from the game. Query examples: /// window.TravianDefaults.Map.Size.top /// resources.maxStorage /// Travian.Game.speed /// </summary> /// <param name="obj">JS object</param> /// <returns>Long for number, bool for boolean, string otherwise</returns> public T GetJsObj <T>(string obj) { IJavaScriptExecutor js = acc.Wb.Driver; return((T)js.ExecuteScript($"return {obj};")); }
public void SetUp() { driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); js = (IJavaScriptExecutor)driver; vars = new Dictionary <string, object>(); }
public static void TypeInTextBoxusingJavaScript(string id, string text) { IJavaScriptExecutor executor = (IJavaScriptExecutor)DriverContext.Driver; executor.ExecuteScript("document.getElementById(id).value='text'"); }
public void SetUp() { driver = new ChromeDriver(); js = (IJavaScriptExecutor)driver; vars = new Dictionary <string, object>(); }
protected BasePage(DriverManager driverManager) { DriverManager = driverManager; Driver = driverManager.Driver; JavaScriptExecutor = (IJavaScriptExecutor)Driver; }
public void ScrollDown() { IJavaScriptExecutor js = driver as IJavaScriptExecutor; js.ExecuteScript("window.scrollTo(0,document.body.scrollHeight);"); }
public CarrefoursaWeb(ChromeDriver browser, IJavaScriptExecutor js) : base(browser, js) { }
public void ScrollElementIntoView(IWebElement Element) { IJavaScriptExecutor js = (IJavaScriptExecutor)_driver; js.ExecuteScript("arguments[0].scrollIntoView(true)", Element); }
public void Execute(DriverManager driver, TestStep step) { long order = step.Order; string wait = step.Wait != null ? step.Wait : ""; List <TestStep> steps = new List <TestStep>(); IJavaScriptExecutor js = (IJavaScriptExecutor)driver.GetDriver(); OpenQA.Selenium.Interactions.Actions actions = new OpenQA.Selenium.Interactions.Actions(driver.GetDriver()); IWebElement ele; int total = 0; string day = ""; string data = ""; string events = ""; string games = ""; string status = ""; string date = ""; string xpath = ""; bool over = false; if (step.Name.Equals("Verify Event")) { if (DataManager.CaptureMap.ContainsKey("IN_SEASON")) { DataManager.CaptureMap["GAME"] = step.Data; //get date for scores id date = driver.FindElement("xpath", "//div[contains(@class,'scores-app-root')]/div[not(@style='display: none;')]//div[contains(@class,'week-selector')]//button/span[contains(@class,'title')]").GetAttribute("innerText"); log.Info("Current segment: " + date); if (date.Equals("YESTERDAY")) { date = DateTime.Today.AddDays(-1).ToString("yyyyMMdd"); log.Info(date); } else if (date.Equals("TODAY")) { date = DateTime.Today.ToString("yyyyMMdd"); log.Info(date); } else if (date.Equals("TOMORROW")) { date = DateTime.Today.AddDays(+1).ToString("yyyyMMdd"); log.Info(date); } else { date = DateTime.Parse(date).ToString("MMdd"); log.Info(date); } ele = driver.FindElement("xpath", "//div[@class='scores' and contains (@id,'" + date + "')]//a[contains(@class,'score-chip')][" + step.Data + "]"); games = ele.GetAttribute("className"); games = games.Substring(games.IndexOf(" ") + 1); log.Info("Game State: " + games); if (games.Equals("pregame")) { step.Data = "TeamSport_FutureEvent"; DataManager.CaptureMap["EVENT_STATUS"] = "FUTURE"; } else if (games.Equals("live")) { step.Data = "TeamSport_LiveEvent"; DataManager.CaptureMap["EVENT_STATUS"] = "LIVE"; } else { status = driver.FindElement("xpath", "//div[@class='scores' and contains (@id,'" + date + "')]//a[contains(@class,'score-chip')][" + step.Data + "]//div[contains(@class,'status-text')]").Text; log.Info("Event status: " + status); if (status.Equals("POSTPONED") || status.Equals("CANCELED")) { step.Data = "TeamSport_PostponedEvent"; DataManager.CaptureMap["EVENT_STATUS"] = "POSTPONED"; } else { step.Data = "TeamSport_PastEvent"; DataManager.CaptureMap["EVENT_STATUS"] = "FINAL"; } } } else { log.Warn("No IN_SEASON variable available or data is populated. Using data."); } steps.Add(new TestStep(order, "Run Event Template", step.Data, "run_template", "xpath", "", wait)); TestRunner.RunTestSteps(driver, null, steps); steps.Clear(); } else if (step.Name.Equals("Verify Events in Segment")) { DataManager.CaptureMap["SPORT"] = step.Data; //get date for scores id date = driver.FindElement("xpath", "//h2[contains(@class,'section-title fs-30 desktop-show') and not(@style='display: none;')]").GetAttribute("innerText").Substring(5); log.Info("Current segment: " + date); DataManager.CaptureMap["NFL_WEEK"] = date; day = DateTime.Now.DayOfWeek.ToString(); if (day.Equals("Tuesday") || day.Equals("Wednesday") || day.Equals("Thursday")) { day = "NFL_Thursday"; } else if (day.Equals("Friday") || day.Equals("Saturday") || day.Equals("Sunday")) { day = "NFL_Sunday"; } else { day = "NFL_Monday"; } steps.Add(new TestStep(order, "Run Segment by Day", day, "run_template", "xpath", "", wait)); TestRunner.RunTestSteps(driver, null, steps); steps.Clear(); } else if (step.Name.Equals("Verify Events by Day")) { DataManager.CaptureMap["NFL_DAY"] = step.Data; total = driver.FindElements("xpath", "//div[@class='scores' and contains (@id,'w" + DataManager.CaptureMap["NFL_WEEK"] + step.Data + "')]//a[contains(@class,'score-chip')]").Count; for (int game = 1; game <= total; game++) { DataManager.CaptureMap["GAME"] = game.ToString(); ele = driver.FindElement("xpath", "//div[@class='scores' and contains (@id,'w" + DataManager.CaptureMap["NFL_WEEK"] + step.Data + "')]//a[contains(@class,'score-chip')][" + game + "]"); games = ele.GetAttribute("className"); games = games.Substring(games.IndexOf(" ") + 1); log.Info("Game State: " + games); if (games.Equals("pregame")) { events = "Football_FutureEvent"; DataManager.CaptureMap["EVENT_STATUS"] = "FUTURE"; } else if (games.Equals("live")) { events = "TeamSport_LiveEvent"; DataManager.CaptureMap["EVENT_STATUS"] = "LIVE"; } else { status = driver.FindElement("xpath", "//div[@class='scores' and contains (@id,'" + DataManager.CaptureMap["NFL_WEEK"] + step.Data + "')]//a[contains(@class,'score-chip')][" + game + "]//div[contains(@class,'status-text')]").Text; log.Info("Event status: " + status); if (status.Equals("POSTPONED") || status.Equals("CANCELED")) { events = "TeamSport_PostponedEvent"; DataManager.CaptureMap["EVENT_STATUS"] = "POSTPONED"; } else { events = "TeamSport_PastEvent"; DataManager.CaptureMap["EVENT_STATUS"] = "FINAL"; } } steps.Add(new TestStep(order, "Run Event Template", events, "run_template", "xpath", "", wait)); TestRunner.RunTestSteps(driver, null, steps); steps.Clear(); steps.Add(new TestStep(order, "Return to Scores Segment", "TeamSport_ScoresToday", "run_template", "xpath", "", wait)); TestRunner.RunTestSteps(driver, null, steps); steps.Clear(); } } else if (step.Name.Equals("Scroll to Sunday")) { ele = driver.FindElement("xpath", "//div[@class='scores' and contains (@id,'w" + DataManager.CaptureMap["NFL_WEEK"] + "sun" + "')]"); js.ExecuteScript("arguments[0].scrollIntoView(true);", ele); actions.MoveToElement(ele).Perform(); } else if (step.Name.Equals("Click Scorechip By Number")) { data = step.Data; steps.Add(new TestStep(order, "Click Event " + data, "", "click", "xpath", "//div[@class='scores' and contains (@id,'w" + DataManager.CaptureMap["NFL_WEEK"] + DataManager.CaptureMap["NFL_DAY"] + "')]//a[contains(@class,'score-chip')][" + data + "]", wait)); TestRunner.RunTestSteps(driver, null, steps); steps.Clear(); } else if (step.Name.Equals("Capture Team Info from Chip")) { data = step.Data; xpath = "//div[contains(@id,'w" + DataManager.CaptureMap["NFL_WEEK"] + DataManager.CaptureMap["NFL_DAY"] + "')]"; steps.Add(new TestStep(order, "Capture Away Team Abbreviation", "AWAY_TEAM_ABB", "capture", "xpath", "(" + xpath + "//a[contains(@class,'score-chip')][" + data + "]//div[@class='teams']//div[contains(@class,'abbreviation')]//span[contains(@class,'text')])[1]", wait)); steps.Add(new TestStep(order, "Capture Away Team", "AWAY_TEAM", "capture", "xpath", "(" + xpath + "//a[contains(@class,'score-chip')][" + data + "]//div[@class='teams']//div[contains(@class,' team')]//span[contains(@class,'text')])[1]", wait)); steps.Add(new TestStep(order, "Capture Home Team Abbreviation", "HOME_TEAM_ABB", "capture", "xpath", "(" + xpath + "//a[contains(@class,'score-chip')][" + data + "]//div[@class='teams']//div[contains(@class,'abbreviation')]//span[contains(@class,'text')])[2]", wait)); steps.Add(new TestStep(order, "Capture Home Team", "HOME_TEAM", "capture", "xpath", "(" + xpath + "//a[contains(@class,'score-chip')][" + data + "]//div[@class='teams']//div[contains(@class,' team')]//span[contains(@class,'text')])[2]", wait)); // capture scores for event if (DataManager.CaptureMap["EVENT_STATUS"].Equals("LIVE") || DataManager.CaptureMap["EVENT_STATUS"].Equals("FINAL")) { steps.Add(new TestStep(order, "Capture Away Team Score", "AWAY_TEAM_SCORE", "capture", "xpath", "(" + xpath + "//a[contains(@class,'score-chip')][" + data + "]//div[@class='teams']//div[contains(@class,'team-score')])[1]", wait)); steps.Add(new TestStep(order, "Capture Home Team Score", "HOME_TEAM_SCORE", "capture", "xpath", "(" + xpath + "//a[contains(@class,'score-chip')][" + data + "]//div[@class='teams']//div[contains(@class,'team-score')])[2]", wait)); } TestRunner.RunTestSteps(driver, null, steps); steps.Clear(); } else { throw new Exception("Test Step not found in script"); } }
public void Execute(DriverManager driver, TestStep step) { long order = step.Order; string wait = step.Wait != null ? step.Wait : ""; List <TestStep> steps = new List <TestStep>(); List <string> stoppage = new List <string>(); IWebElement ele; int size; int start; int end; int game = 0; string data = ""; string status = ""; bool include = false; IJavaScriptExecutor js = (IJavaScriptExecutor)driver.GetDriver(); VerifyError err = new VerifyError(); if (step.Name.Equals("Verify Final PBP Headers By Sport")) { ele = driver.FindElement("xpath", "//img[@class='location-image']"); data = ele.GetAttribute("src"); start = data.LastIndexOf('/') + 1; end = data.IndexOf(".vresize") - start; data = data.Substring(start, end); if (ele.GetAttribute("src").Contains("soccer")) { data = "Soccer"; } size = 1; switch (data) { case "NHL": stoppage.Add("1ST PERIOD"); stoppage.Add("2ND PERIOD"); stoppage.Add("3RD PERIOD"); break; case "Soccer": case "NCAABasketball": stoppage.Add("1ST HALF"); stoppage.Add("2ND HALF"); break; case "MLB": status = driver.FindElement("xpath", "//div[contains(@class,'scoring-summary')]//tr[2]/td[@data-index='9']/span").Text; stoppage.Add("TOP 1ST"); stoppage.Add("BOTTOM 1ST"); stoppage.Add("TOP 2ND"); stoppage.Add("BOTTOM 2ND"); stoppage.Add("TOP 3RD"); stoppage.Add("BOTTOM 3RD"); stoppage.Add("TOP 4TH"); stoppage.Add("BOTTOM 4TH"); stoppage.Add("TOP 5TH"); stoppage.Add("BOTTOM 5TH"); stoppage.Add("TOP 6TH"); stoppage.Add("BOTTOM 6TH"); stoppage.Add("TOP 7TH"); stoppage.Add("BOTTOM 7TH"); stoppage.Add("TOP 8TH"); stoppage.Add("BOTTOM 8TH"); stoppage.Add("TOP 9TH"); if (!status.Equals("X")) { stoppage.Add("BOTTOM 9TH"); } break; default: stoppage.Add("1ST QUARTER"); stoppage.Add("2ND QUARTER"); stoppage.Add("3RD QUARTER"); stoppage.Add("4TH QUARTER"); break; } foreach (string stop in stoppage) { steps.Add(new TestStep(order, "Verify PBP Header for " + data, stop, "verify_value", "xpath", "((//div[contains(@class,'header')]//span[contains(@class,'pbp-header') and contains(@class,'fs-23')]))[" + size + "]", wait)); TestRunner.RunTestSteps(driver, null, steps); steps.Clear(); size++; } } else if (step.Name.Equals("Verify Live PBP Header By Sport")) { ele = driver.FindElement("xpath", "//img[@class='location-image']"); data = ele.GetAttribute("src"); start = data.LastIndexOf('/') + 1; end = data.IndexOf(".vresize") - start; data = data.Substring(start, end); if (ele.GetAttribute("src").Contains("soccer")) { data = "Soccer"; } size = 1; switch (data) { case "NHL": stoppage.Add("1ST PERIOD"); stoppage.Add("2ND PERIOD"); stoppage.Add("3RD PERIOD"); break; case "Soccer": case "NCAABasketball": status = driver.FindElement("xpath", "//div[contains(@class,'status-line')]").Text.Substring(0, 2); try { game = Int32.Parse(status); } catch (Exception e) { log.Warn(status + " is not a number"); } if (game <= 45 || status.Equals("HT")) { stoppage.Add("1ST HALF"); } else { stoppage.Add("2ND HALF"); stoppage.Add("1ST HALF"); } break; case "MLB": status = driver.FindElement("xpath", "//div[contains(@class,'status-line')]").Text; log.Info("Inning: " + status); if (String.IsNullOrEmpty(status)) { js.ExecuteScript("window.scrollBy({top: 150,left: 0,behavior: 'smooth'});"); log.Info("Scroll down and capture inning"); status = driver.FindElement("xpath", "//div[contains(@class,'status-line')]").Text; log.Info("Inning: " + status); } status = status.Substring(0, 5); if (status.Equals("BOT 9")) { stoppage.Add("BOTTOM 9TH"); include = true; } if (status.Equals("TOP 9") || include) { stoppage.Add("TOP 9TH"); include = true; } if (status.Equals("BOT 8") || include) { stoppage.Add("BOTTOM 8TH"); include = true; } if (status.Equals("TOP 8") || include) { stoppage.Add("TOP 8TH"); include = true; } if (status.Equals("BOT 7") || include) { stoppage.Add("BOTTOM 7TH"); include = true; } if (status.Equals("TOP 7") || include) { stoppage.Add("TOP 7TH"); include = true; } if (status.Equals("BOT 6") || include) { stoppage.Add("BOTTOM 6TH"); include = true; } if (status.Equals("TOP 6") || include) { stoppage.Add("TOP 6TH"); include = true; } if (status.Equals("BOT 5") || include) { stoppage.Add("BOTTOM 5TH"); include = true; } if (status.Equals("TOP 5") || include) { stoppage.Add("TOP 5TH"); include = true; } if (status.Equals("BOT 4") || include) { stoppage.Add("BOTTOM 4TH"); include = true; } if (status.Equals("TOP 4") || include) { stoppage.Add("TOP 4TH"); include = true; } if (status.Equals("BOT 3") || include) { stoppage.Add("BOTTOM 3RD"); include = true; } if (status.Equals("TOP 3") || include) { stoppage.Add("TOP 3RD"); include = true; } if (status.Equals("BOT 2") || include) { stoppage.Add("BOTTOM 2ND"); include = true; } if (status.Equals("TOP 2") || include) { stoppage.Add("TOP 2ND"); include = true; } if (status.Equals("BOT 1") || include) { stoppage.Add("BOTTOM 1ST"); include = true; } if (status.Equals("TOP 1") || include) { stoppage.Add("TOP 1ST"); } break; default: status = driver.FindElement("xpath", "//div[contains(@class,'status-line')]").Text.Substring(0, 4); if (status.Contains("4TH") || include) { stoppage.Add("4TH QUARTER"); include = true; } if (status.Contains("3RD") || include) { stoppage.Add("3RD QUARTER"); include = true; } if (status.Contains("HALF")) { include = true; } if (status.Contains("2ND") || include) { stoppage.Add("2ND QUARTER"); include = true; } if (status.Contains("1ST") || include) { stoppage.Add("1ST QUARTER"); } break; } foreach (string stop in stoppage) { steps.Add(new TestStep(order, "Verify PBP Header for " + data, stop, "verify_value", "xpath", "((//div[contains(@class,'header')]//span[contains(@class,'pbp-header') and contains(@class,'fs-23')]))[" + size + "]", wait)); TestRunner.RunTestSteps(driver, null, steps); steps.Clear(); size++; } } else { throw new Exception("Test Step not found in script"); } }
public void FillTravellerDetails(int travellerIndex, FullElementSelector fullElementSelector, ReadOnlyCollection <IWebElement> travellerList, IJavaScriptExecutor js) { var indivTraveller = travellerList[travellerIndex].FindElement(By.XPath(fullElementSelector.indivTravellerPathElement)); int retrieveIndex = travellerIndex; //if (travellerIndex == 0) // retrieveIndex = 0; //else // retrieveIndex = travellerIndex - 1; js.ExecuteScript("arguments[0].scrollIntoView();", travellerList[travellerIndex]); indivTraveller.FindElement(By.XPath(fullElementSelector.tFullNameElement)).SendKeys(travellerDetailsList[retrieveIndex].tFullName); indivTraveller.FindElement(By.XPath(fullElementSelector.tNRICElement)).SendKeys(travellerDetailsList[retrieveIndex].tNRIC); indivTraveller.FindElement(By.XPath(fullElementSelector.tDOBElement)).SendKeys(travellerDetailsList[retrieveIndex].tDOB); indivTraveller.FindElement(By.XPath(fullElementSelector.tNationality)).SendKeys(travellerDetailsList[retrieveIndex].tNationality); string autocompletePopUpElement = fullElementSelector.autocompletePopupElement; ReadOnlyCollection <IWebElement> autocompletePopUps = Driver.Instance.FindElements(By.CssSelector(autocompletePopUpElement)); if (autocompletePopUps.Count() == 0) // If autocomplete somehow does not popup { string popupTriggerElement = fullElementSelector.popupTriggerElement; Driver.Instance.FindElement(By.XPath(popupTriggerElement)).Click(); // trigger dropdown arrow Thread.Sleep(500); autocompletePopUps = Driver.Instance.FindElements(By.CssSelector(autocompletePopUpElement)); } autocompletePopUps.First(a => a.Text == travellerDetailsList[retrieveIndex].tNationality).Click(); //string popupCountryElement = "./div/custom-autocomplete/div/mat-form-field/div/div[1]/div/div/div/div"; //indivTraveller.FindElement(By.XPath(popupCountryElement)).Click(); Thread.Sleep(1000); }
public void Fill(FullElementSelector fullElementSelector, string testId, string testName) { IJavaScriptExecutor js = (IJavaScriptExecutor)Driver.Instance; Thread.Sleep(3000); if (!applicantIsTraveller) {//toggle off (only for individual) string toggleElement = fullElementSelector.applicantIsTravellerToggleElement; var applicantIsTravellerToggle = Driver.Instance.FindElement(By.XPath(toggleElement)); var scrollForToggle = Driver.Instance.FindElement(By.XPath(fullElementSelector.scrollForToggleElement)); js.ExecuteScript("arguments[0].scrollIntoView();", scrollForToggle); Thread.Sleep(1000); applicantIsTravellerToggle.Click(); Thread.Sleep(2000); } int totalCount = travellerDetailsList.Count; if (totalCount == 0 && !applicantIsTraveller) { Console.WriteLine("Please provide traveller detail"); return; // if nothing, skip } ReadOnlyCollection <IWebElement> travellerList = Driver.Instance.FindElements(By.CssSelector(fullElementSelector.travellerListElement)); int displayedTravellerCount = travellerList.Count(); if (!applicantIsTraveller) // individual, one traveller detail, start from traveller one { FillTravellerDetails(0, fullElementSelector, travellerList, js); Helper.WriteToCSV("Applicant Details Page", "Traveller 1 filled", true, null, testId, testName); //var indivTraveller = travellerList[0].FindElement(By.XPath("./div/div/div[2]")); //indivTraveller.FindElement(By.XPath("./custom-input[1]/div/mat-form-field/div/div[1]/div/input")).SendKeys(travellerDetailsList[0].tNRIC); //indivTraveller.FindElement(By.XPath("./custom-input[2]/div/mat-form-field/div/div[1]/div/input")).SendKeys(travellerDetailsList[0].tFullName); //indivTraveller.FindElement(By.XPath("./div/custom-input/div/mat-form-field/div/div[1]/div/input")).SendKeys(travellerDetailsList[0].tDOB); //indivTraveller.FindElement(By.XPath("./div/custom-autocomplete/div/mat-form-field/div/div[1]/div/input")).SendKeys(travellerDetailsList[0].tNationality); //string autocompletePopUpElement = fullElementSelector.autocompletePopupElement; //ReadOnlyCollection<IWebElement> autocompletePopUps = Driver.Instance.FindElements(By.CssSelector(autocompletePopUpElement)); //if (autocompletePopUps.Count() == 0) // If autocomplete somehow does not popup //{ // string popupTriggerElement = fullElementSelector.popupTriggerElement; // Driver.Instance.FindElement(By.XPath(popupTriggerElement)).Click(); // trigger dropdown arrow // Thread.Sleep(500); //} //string popupCountryElement = fullElementSelector.popupCountryElement; //Driver.Instance.FindElement(By.XPath(popupCountryElement)).Click(); //Thread.Sleep(1000); } else // start from traveller 2 { for (int i = 0; i < displayedTravellerCount; i++) { FillTravellerDetails(i, fullElementSelector, travellerList, js); Helper.WriteToCSV("Applicant Details Page", "Traveller" + (i + 1) + "filled", true, null, testId, testName); // foreach (TravellerDetail t in travellerDetailsList) // { // /* traveller info */ // Driver.Instance.FindElement(By.Id("aNric")).SendKeys(t.tNRIC); // Driver.Instance.FindElement(By.Id("aFullName")).SendKeys(t.tFullName); // Driver.Instance.FindElement(By.Id("aDob")).SendKeys(t.tDOB); // Driver.Instance.FindElement(By.XPath("//*[@id='applicant-Nationality']/div/div[1]/div/input")).SendKeys(t.tNationality); // Thread.Sleep(1500); // ReadOnlyCollection<IWebElement> autocompletePopUps = Driver.Instance.FindElements(By.CssSelector(".autocomplete-popup.show")); // if (autocompletePopUps.Count() == 0) //If autocomplete somehow does not trigger // { // Driver.Instance.FindElement(By.XPath("//*[@id='applicant-Nationality']/div/div[1]/div/span[1]")).Click(); //Clicks the dropdown arrow // Thread.Sleep(500); // } // Driver.Instance.FindElement(By.XPath("//*[@id='applicant-Nationality']/div/div[1]/div/div/div/div")).Click(); // Selects the autocomplete popup // travellerCount++; // } } } }
public JObject getStatusLink(Account ac, String id) { JObject info = new JObject(); try { login(driver, ac.TenDangNhap, ac.MatKhau); driver.Navigate().GoToUrl("https://batdongsan.com.vn/trang-ca-nhan"); var ltr = driver.FindElements(By.XPath("//table[@class='tbl']/tbody/tr")); Thread.Sleep(300); string status = String.Empty; string linkXem = String.Empty; string ghiChu = String.Empty; if (ltr != null && ltr.Count > 2) { for (int i = 1; i < ltr.Count; ++i) { var tr = ltr[i]; var ltd = tr.FindElements(By.TagName("td")); if (ltd != null && ltd.Count > 3) { var elMa = ltd[1]; var textMa = elMa.GetAttribute("innerText"); var elTieuDe = ltd[2]; var t = elTieuDe.GetAttribute("innerText"); var maTin = elMa.FindElement(By.TagName("div"))?.Text; if (maTin == id) { status = textMa.Replace(maTin, "").Trim(); if (status.IndexOf("Không duyệt") >= 0) { var idex = ltd.Count - 1; var endtd = ltd[idex].FindElement(By.TagName("a")); if (endtd != null) { IJavaScriptExecutor js = (IJavaScriptExecutor)driver; js.ExecuteScript($"GetAllNote('{id}')"); ghiChu = CommonMethods.FindElement(driver, By.XPath("//div[@class='fancybox-outer']/div/table/tbody/tr/td[@class='header']"))?.GetAttribute("innerText")?.Trim() ?? String.Empty; } } var tagas = elTieuDe.FindElement(By.TagName("div"))?.FindElements(By.TagName("a")); for (int y = 0; y < tagas.Count; ++y) { var txt = CommonMethods.convertToUnSign(tagas[y]?.Text); switch (txt) { case "Xem": linkXem = tagas[y].GetAttribute("href"); break; } } continue; } } if (!string.IsNullOrEmpty(status)) { info["id"] = id; info["trang-thai"] = status; info["linh-xem"] = linkXem; info["ghi-chu"] = ghiChu; } } } } catch (System.Exception ex) { driver.Quit(); throw ex; } driver.Quit(); return(info); }
public void JsType(IWebElement webElement, string value) { IJavaScriptExecutor executor = (IJavaScriptExecutor)Driver; executor.ExecuteScript("arguments[0].value=arguments[1];", webElement, value); }
public string FTP_STLouis(string houseno, string sname, string sttype, string parcelNumber, string searchType, string orderNumber, string ownername, string directParcel) { GlobalClass.global_orderNo = orderNumber; HttpContext.Current.Session["orderNo"] = orderNumber; GlobalClass.global_parcelNo = parcelNumber; IWebElement iframeElement1; var driverService = PhantomJSDriverService.CreateDefaultService(); driverService.HideCommandPromptWindow = true; using (driver = new PhantomJSDriver()) { string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = ""; string locator_no = "-", owner_name = "-", taxing_address = "-", city_name = "-", subdivison_name = "-", legal_description = "-", year_built = "-"; string locator_num = "-", prop_location = "-", tax_authority = "St. Louis County Government,41 South Central, Clayton, Missouri 63105", dele_status = "-"; try { StartTime = DateTime.Now.ToString("HH:mm:ss"); if (searchType == "titleflex") { string address = houseno + " " + sname; gc.TitleFlexSearch(orderNumber, parcelNumber, "", address, "SC", "Charleston"); if (HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes") { driver.Quit(); return("MultiParcel"); } else if (HttpContext.Current.Session["titleparcel"].ToString() == "") { HttpContext.Current.Session["Nodata_WilliamsonTX"] = "Yes"; driver.Quit(); return("No Data Found"); } parcelNumber = HttpContext.Current.Session["titleparcel"].ToString(); searchType = "parcel"; } if (searchType == "address") { driver.Navigate().GoToUrl("http://revenue.stlouisco.com/IAS/"); //find ifram using xpath IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frameset/frame[1]")); //now use the switch command driver.SwitchTo().Frame(iframeElement); Thread.Sleep(3000); driver.FindElement(By.XPath("/html/body/form/table/tbody/tr[2]/td[1]/div[3]/span/label")).Click(); Thread.Sleep(3000); driver.FindElement(By.XPath("//*[@id='tboxAddrNum']")).SendKeys(houseno); driver.FindElement(By.XPath("//*[@id='tboxStreet']")).SendKeys(sname); driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter); gc.CreatePdf_WOP(orderNumber, "Address Search", driver, "MO", "Saint Louis"); //multi parecl driver.SwitchTo().DefaultContent(); iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]")); driver.SwitchTo().Frame(iframeElement1); Thread.Sleep(3000); string count = driver.FindElement(By.XPath("//*[@id='labelTotalRows']")).Text.Trim(); if (count != "1 Record Found") { Multi_Parcel_Search(orderNumber); driver.Quit(); return("MultiParcel"); } try { //No Data Found string nodata = driver.FindElement(By.XPath("//*[@id='panelData']")).Text; if (nodata.Contains("No records were found")) { HttpContext.Current.Session["Nodata_StLouis"] = "Yes"; driver.Quit(); return("No Data Found"); } } catch { } } else if (searchType == "parcel") { driver.Navigate().GoToUrl("http://revenue.stlouisco.com/IAS/"); //find ifram using xpath IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frameset/frame[1]")); //now use the switch command driver.SwitchTo().Frame(iframeElement); Thread.Sleep(3000); driver.FindElement(By.XPath("//*[@id='tboxLocatorNum']")).SendKeys(parcelNumber); driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter); gc.CreatePdf(orderNumber, parcelNumber, "Parcel search", driver, "MO", "Saint Louis"); driver.SwitchTo().DefaultContent(); iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]")); driver.SwitchTo().Frame(iframeElement1); try { //No Data Found string nodata = driver.FindElement(By.XPath("//*[@id='panelData']")).Text; if (nodata.Contains("No records were found")) { HttpContext.Current.Session["Nodata_StLouis"] = "Yes"; driver.Quit(); return("No Data Found"); } } catch { } } else if (searchType == "ownername") { driver.Navigate().GoToUrl("http://revenue.stlouisco.com/IAS/"); //find ifram using xpath IWebElement iframeElement = driver.FindElement(By.Name("SearchInput")); //now use the switch command driver.SwitchTo().Frame(iframeElement); Thread.Sleep(3000); driver.FindElement(By.Id("rbutName")).Click(); Thread.Sleep(3000); string firstname = "", lastname = ""; if (ownername.Contains(" ")) { string[] name = ownername.Split(' '); firstname = name[0]; lastname = name[1]; driver.FindElement(By.XPath("//*[@id='tboxLastName']")).SendKeys(firstname); driver.FindElement(By.XPath("//*[@id='tboxFirstName']")).SendKeys(lastname); driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter); } else { driver.FindElement(By.XPath("//*[@id='tboxLastName']")).SendKeys(ownername); driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter); } gc.CreatePdf_WOP(orderNumber, "Owner Search", driver, "MO", "Saint Louis"); driver.SwitchTo().DefaultContent(); iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]")); driver.SwitchTo().Frame(iframeElement1); Thread.Sleep(3000); try { string count = driver.FindElement(By.XPath("//*[@id='labelTotalRows']")).Text.Trim(); string getcount = WebDriverTest.Before(count, "Record Found").Trim(); int igetcount = Convert.ToInt16(getcount); if (igetcount <= 10) { if (count != "1 Record Found") { Multi_Parcel_Search(orderNumber); driver.Quit(); return("MultiParcel"); } } else { HttpContext.Current.Session["multiparcel_StLouis_count"] = "Maximum"; return("Maximum"); } } catch { } try { string count = driver.FindElement(By.XPath("//*[@id='labelTotalRows']")).Text.Trim(); string getcount = WebDriverTest.Before(count, "Records Found").Trim(); int igetcount = Convert.ToInt16(getcount); if (igetcount <= 10) { if (count != "1 Records Found") { Multi_Parcel_Search(orderNumber); driver.Quit(); return("MultiParcel"); } } else { HttpContext.Current.Session["multiparcel_StLouis_count"] = "Maximum"; return("Maximum"); } } catch { } try { //No Data Found string nodata = driver.FindElement(By.XPath("//*[@id='panelData']")).Text; if (nodata.Contains("No records were found")) { HttpContext.Current.Session["Nodata_StLouis"] = "Yes"; driver.Quit(); return("No Data Found"); } } catch { } } //Amrock Mapping Amrock amc = new Amrock(); //Thread.Sleep(3000); //driver.SwitchTo().DefaultContent(); //iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]")); //driver.SwitchTo().Frame(iframeElement1); driver.FindElement(By.XPath("/html/body/form/div[3]/center/table/tbody/tr[3]/td/table/tbody/tr[2]/td[3]/img")).Click(); driver.SwitchTo().DefaultContent(); Thread.Sleep(1000); //owner ship and legal information // Property Details Table. IWebElement iframeElement2 = driver.FindElement(By.XPath("/html/frameset/frame")); driver.SwitchTo().Frame(iframeElement2); Thread.Sleep(3000); //assessment details locator_no = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labLocatorNum']")).Text; amc.TaxId = locator_no; int k = 0, j = 0; IWebElement TBAssessment = driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td/table/tbody/tr[3]/td/form/table/tbody/tr/td[2]/div[3]/div[4]/div[2]/div[1]/div[2]/table/tbody")); IList <IWebElement> TRAssessment = TBAssessment.FindElements(By.TagName("tr")); IList <IWebElement> TDAssessment; foreach (IWebElement row1 in TRAssessment) { TDAssessment = row1.FindElements(By.TagName("td")); if (TDAssessment.Count != 0 && !row1.Text.Contains("Appraised Values") && !row1.Text.Contains("Year")) { try { //click expnad the year IList <IWebElement> expand = TBAssessment.FindElements(By.XPath("//tr[contains(@id,'trAsmt')]/td[1]/img")); foreach (IWebElement exe in expand) { if (j > 0 && j < 3) { IJavaScriptExecutor js = driver as IJavaScriptExecutor; js.ExecuteScript("arguments[0].click();", exe); Thread.Sleep(1000); } j++; } } catch { } //store the values IList <IWebElement> residential_values = TBAssessment.FindElements(By.XPath("//tr[contains(@id,'trAsmt')]")); foreach (IWebElement rv in residential_values) { try { if (k > 0 && k < 4) { //insert details TDAssessment = rv.FindElements(By.TagName("td")); string assessment_details = TDAssessment[1].Text.Trim() + "~" + TDAssessment[3].Text.Trim() + "~" + TDAssessment[4].Text.Trim() + "~" + TDAssessment[5].Text.Trim() + "~" + TDAssessment[7].Text.Trim() + "~" + TDAssessment[8].Text.Trim() + "~" + TDAssessment[9].Text.Trim(); gc.insert_date(orderNumber, locator_no, 23, assessment_details, 1, DateTime.Now); } k++; } catch (Exception e) { } } gc.CreatePdf(orderNumber, locator_no, "Assessment Details", driver, "MO", "Saint Louis"); } } // Property Details Table. owner_name = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labOwnerName']")).Text; taxing_address = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labTaxAddr']")).Text; city_name = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labCityName']")).Text; subdivison_name = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labSubdivisionName']")).Text; legal_description = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labLegalDesc']")).Text; driver.FindElement(By.ClassName("RevDeptContentLink")).SendKeys(Keys.Enter); Thread.Sleep(3000); gc.CreatePdf(orderNumber, locator_no, "PropertyDetails", driver, "MO", "Saint Louis"); Thread.Sleep(2000); try { year_built = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_DwellingDataRes_labYearBuilt']")).Text; } catch { } string property_details = owner_name + "~" + taxing_address + "~" + city_name + "~" + subdivison_name + "~" + legal_description + "~" + year_built; if (property_details.Contains("\r\n")) { property_details = property_details.Replace("\r\n", ""); gc.insert_date(orderNumber, locator_no, 22, property_details, 1, DateTime.Now); //db.ExecuteQuery("insert into data_value_master (Order_no,parcel_no,Data_Field_Text_Id,Data_Field_value,Is_Table) values ('" + orderNumber + "','" + multirowTD[0].Text.Trim() + "',19 ,'" + multi + "',1)"); } AssessmentTime = DateTime.Now.ToString("HH:mm:ss"); Thread.Sleep(2000); //Tax amount due driver.FindElement(By.XPath("//*[@id='ctl00_LeftMargin_MarginLinks_aTaxDue']")).SendKeys(Keys.Enter); Thread.Sleep(3000); //need to add tax authority try { IWebElement TBTaxDue = driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td/table/tbody/tr[3]/td/form/table/tbody/tr/td[2]/div[5]/div[2]/div[1]/table/tbody/tr[2]/td/table/tbody")); IList <IWebElement> TRTaxDue = TBTaxDue.FindElements(By.TagName("tr")); IList <IWebElement> TDTaxDue; int i = 0; int count = TRTaxDue.Count; //Amcrock int assess = 0; //if condition used for display two tables foreach (IWebElement row1 in TRTaxDue) { if (!row1.Text.Contains("Locator Number") && !row1.Text.Contains("Tax Year")) { TDTaxDue = row1.FindElements(By.TagName("td")); int TDcount = TDTaxDue.Count(); if (TDcount == 8) { //insert details string Tax_details = TDTaxDue[0].Text.Trim() + "~" + TDTaxDue[1].Text.Trim() + "~" + TDTaxDue[2].Text.Trim() + "~" + TDTaxDue[3].Text.Trim() + "~" + TDTaxDue[4].Text.Trim() + "~" + TDTaxDue[5].Text.Trim() + "~" + TDTaxDue[6].Text.Trim() + "~" + TDTaxDue[7].Text.Trim() + "~" + "-" + "~" + "-"; gc.insert_date(orderNumber, locator_no, 24, Tax_details, 1, DateTime.Now); //Amcrock if (assess < 2 && row1.Text.Contains("Total:")) { assess++; if (assess == 1) { //amc.Land = TDTaxDue[5].Text.Trim(); //amc.Building = TDTaxDue[6].Text.Trim(); //amc.Assess = TDTaxDue[7].Text.Trim(); } } } if (TDcount == 6 || TDcount == 2) { if (i < count - 3) { //insert details string Tax_details = TDTaxDue[0].Text.Trim() + "~" + TDTaxDue[1].Text.Trim() + "~" + TDTaxDue[2].Text.Trim() + "~" + TDTaxDue[3].Text.Trim() + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + TDTaxDue[4].Text.Trim() + "~" + TDTaxDue[5].Text.Trim(); gc.insert_date(orderNumber, locator_no, 24, Tax_details, 1, DateTime.Now); } if (i == count - 3) { //insert details string Tax_details = TDTaxDue[0].Text.Replace(">>", "").Trim() + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + TDTaxDue[1].Text.Trim(); gc.insert_date(orderNumber, locator_no, 24, Tax_details, 1, DateTime.Now); } i++; } } } gc.CreatePdf(orderNumber, locator_no, "tax Details", driver, "MO", "Saint Louis"); } catch (Exception e) { } driver.Navigate().Back(); Thread.Sleep(3000); //Tax History driver.SwitchTo().DefaultContent(); Thread.Sleep(3000); IWebElement iframeElement21 = driver.FindElement(By.XPath("/html/frameset/frame")); driver.SwitchTo().Frame(iframeElement21); Thread.Sleep(3000); driver.FindElement(By.Id("ctl00_LeftMargin_MarginLinks_aTaxHistory")).SendKeys(Keys.Enter); Thread.Sleep(3000); locator_num = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_labelLocatorNum']")).Text; owner_name = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_labelOwner']")).Text; prop_location = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_labelLocation']")).Text; IWebElement TBTax_History = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_tableTaxHistory']/tbody")); IList <IWebElement> TRTax_History = TBTax_History.FindElements(By.TagName("tr")); IList <IWebElement> TDTax_History; int a = 0; foreach (IWebElement row1 in TRTax_History) { if (!row1.Text.Contains("Tax Year")) { if (a < 3) { TDTax_History = row1.FindElements(By.TagName("td")); //insert details string TaxHistory_details = owner_name + "~" + prop_location + "~" + TDTax_History[0].Text.Trim() + "~" + TDTax_History[2].Text.Trim() + "~" + TDTax_History[3].Text.Trim() + "~" + TDTax_History[4].Text.Trim() + "~" + TDTax_History[5].Text.Trim() + "~" + TDTax_History[6].Text.Trim() + "~" + TDTax_History[7].Text.Trim() + "~" + tax_authority + "~" + "-"; gc.insert_date(orderNumber, locator_num, 25, TaxHistory_details, 1, DateTime.Now); } a++; } } driver.Navigate().Back(); Thread.Sleep(3000); //Tax Due driver.SwitchTo().DefaultContent(); Thread.Sleep(3000); IWebElement iframeEle = driver.FindElement(By.XPath("/html/frameset/frame")); driver.SwitchTo().Frame(iframeEle); Thread.Sleep(3000); driver.FindElement(By.Id("ctl00_LeftMargin_MarginLinks_aTaxDue")).SendKeys(Keys.Enter); Thread.Sleep(3000); //Amcrock Tax Details string TaxesDueStatus = driver.FindElement(By.Id("ctl00_MainContent_TaxesDueData1_labelPageHeader")).Text; int countdue = 0; IWebElement ITaxes = null; try { ITaxes = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_TaxesDueData1_tableTaxPaidRE']/tbody")); } catch { } try { ITaxes = driver.FindElement(By.Id("ctl00_MainContent_TaxesDueData1_panelTaxesDueRE")); } catch { } IList <IWebElement> TRITaxes = ITaxes.FindElements(By.TagName("tr")); IList <IWebElement> TDITaxes; foreach (IWebElement row1 in TRITaxes) { TDITaxes = row1.FindElements(By.XPath("td")); if (!row1.Text.Contains("Tax Year") && TDITaxes.Count != 0 && TDITaxes.Count == 8 && TRITaxes.Count == 3) { string taxyear = TDITaxes[0].Text; string Interest = TDITaxes[2].Text; string penality = TDITaxes[3].Text; if (Interest == ("$0.00") && penality == ("$0.00")) { amc.Instamount1 = TDITaxes[5].Text; //Total Tax amc.Instamountpaid1 = TDITaxes[6].Text; //Amount Paid } if (TaxesDueStatus.Contains("No Taxes Are Due")) { amc.InstPaidDue1 = "Paid"; amc.IsDelinquent = "No"; } } if (!row1.Text.Contains("Tax Year") && TDITaxes.Count != 0 && TDITaxes.Count == 6 && TRITaxes.Count >= 3) { string Interest = TDITaxes[2].Text; string penality = TDITaxes[3].Text; string total = TDITaxes[5].Text; if (Interest != ("$0.00") && penality != ("$0.00") && !total.Contains("$0.00")) { countdue++; } } if (!row1.Text.Contains("Tax Year") && TDITaxes.Count != 0 && TDITaxes.Count == 6 && TRITaxes.Count == 3) { string Interest = TDITaxes[2].Text; string penality = TDITaxes[3].Text; string total = TDITaxes[5].Text; if (Interest == ("$0.00") && penality == ("$0.00") && !total.Contains("$0.00")) { amc.Instamountpaid1 = TDITaxes[6].Text; //Amount Paid amc.InstPaidDue1 = "Due"; amc.IsDelinquent = "No"; } } if (!row1.Text.Contains("Tax Year") && TDITaxes.Count != 0 && TDITaxes.Count == 8 && TRITaxes.Count == 3) { string Interest = TDITaxes[2].Text; string penality = TDITaxes[3].Text; if (Interest != ("$0.00") && penality != ("$0.00") && TaxesDueStatus.Contains("No Taxes Are Due")) { amc.IsDelinquent = "Yes"; } } } if (countdue > 0) { amc.IsDelinquent = "Yes"; } if (amc.IsDelinquent == "Yes") { gc.InsertAmrockTax(orderNumber, amc.TaxId, null, null, null, null, null, null, null, null, null, null, null, null, amc.IsDelinquent); } if (amc.IsDelinquent == "No") { gc.InsertAmrockTax(orderNumber, amc.TaxId, amc.Instamount1, amc.Instamount2, amc.Instamount3, amc.Instamount4, amc.Instamountpaid1, amc.Instamountpaid2, amc.Instamountpaid3, amc.Instamountpaid4, amc.InstPaidDue1, amc.InstPaidDue2, amc.instPaidDue3, amc.instPaidDue4, amc.IsDelinquent); } gc.CreatePdf(orderNumber, locator_no, "Tax_History", driver, "MO", "Saint Louis"); TaxTime = DateTime.Now.ToString("HH:mm:ss"); LastEndTime = DateTime.Now.ToString("HH:mm:ss"); gc.insert_TakenTime(orderNumber, "MO", "Saint Louis", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime); driver.Quit(); gc.mergpdf(orderNumber, "MO", "Saint Louis"); return("Data Inserted Successfully"); } catch (Exception ex) { driver.Quit(); GlobalClass.LogError(ex, orderNumber); throw ex; } } }
public Chrome_AccountManagementVerification(IWebDriver driver, log4net.ILog log1, IJavaScriptExecutor Executor, IWait <IWebDriver> iWait) { this.driver = driver; log = log1; this.executor = Executor; this.iWait = iWait; }
public string FTP_ImperialCA(string Address, string ownername, string parcelNumber, string searchType, string orderNumber, string directParcel) { GlobalClass.global_orderNo = orderNumber; HttpContext.Current.Session["orderNo"] = orderNumber; string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = ""; string Tax_Authority = "", Year = "", href = "", Addresshrf = "", Propertyresult = "", PaidDate = "", parcelhref = "", MailingAddress = ""; var driverService = PhantomJSDriverService.CreateDefaultService(); driverService.HideCommandPromptWindow = true; using (driver = new PhantomJSDriver()) { // driver = new ChromeDriver(); List <string> hreftax = new List <string>(); try { StartTime = DateTime.Now.ToString("HH:mm:ss"); driver.Navigate().GoToUrl("http://www.co.imperial.ca.us/Assessor/PublicWebValueNotices.html"); if (searchType == "titleflex") { //string address = houseno + " " + direction + " " + streetname + " " + streettype; gc.TitleFlexSearch(orderNumber, "", ownername, "", "CA", "Imperial"); if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes")) { driver.Quit(); return("MultiParcel"); } else if (HttpContext.Current.Session["titleparcel"].ToString() == "") { HttpContext.Current.Session["Zero_Imperial"] = "Zero"; driver.Quit(); return("No Data Found"); } parcelNumber = HttpContext.Current.Session["titleparcel"].ToString(); searchType = "parcel"; } if (searchType == "address") { IWebElement Multyaddresstable1 = driver.FindElement(By.XPath("//*[@id='ctl00_MasterContentPlaceHolder_ContentiFrame']")); driver.SwitchTo().Frame(Multyaddresstable1); driver.FindElement(By.XPath("/html/body/form/center/table/tbody/tr[5]/td[3]/input")).SendKeys(Address); IWebElement searchclick = driver.FindElement(By.XPath("/html/body/form/center/p/input[1]")); IJavaScriptExecutor js1 = driver as IJavaScriptExecutor; js1.ExecuteScript("arguments[0].click();", searchclick); Thread.Sleep(2000); try { int Max = 0; gc.CreatePdf_WOP(orderNumber, "SearchAfter", driver, "CA", "Imperial"); IWebElement Multiparceladdress = driver.FindElement(By.XPath("/html/body/form/center/table/tbody")); IList <IWebElement> Multiparcelrow = Multiparceladdress.FindElements(By.TagName("tr")); IList <IWebElement> Multiparcelid; foreach (IWebElement multiparcel in Multiparcelrow) { Multiparcelid = multiparcel.FindElements(By.TagName("td")); if (Multiparcelid.Count != 0 && !multiparcel.Text.Contains("Asmt")) { IWebElement Address1 = Multiparcelid[0].FindElement(By.TagName("a")); Addresshrf = Address1.GetAttribute("href"); string Assment = Address1.Text; string Freeparcel = Multiparcelid[1].Text; string Tra = Multiparcelid[2].Text; string Multiparcel = Freeparcel + "~" + Tra; gc.insert_date(orderNumber, Assment, 1275, Multiparcel, 1, DateTime.Now); Max++; } if (Multiparcelrow.Count == 5 && !multiparcel.Text.Contains("Asmt") && Max < 2) { driver.Navigate().GoToUrl(Addresshrf); Thread.Sleep(2000); } } if (Max > 1 && Max < 26) { HttpContext.Current.Session["multiParcel_Imperial"] = "Maximum"; driver.Quit(); return("MultiParcel"); } if (Max > 25) { HttpContext.Current.Session["multiParcel_Imperial_Multicount"] = "Maximum"; driver.Quit(); return("Maximum"); } if (Max == 0) { HttpContext.Current.Session["Zero_Imperial"] = "Zero"; driver.Quit(); return("No Data Found"); } } catch { } } if (searchType == "parcel") { IWebElement Multyaddresstable1 = driver.FindElement(By.XPath("//*[@id='ctl00_MasterContentPlaceHolder_ContentiFrame']")); driver.SwitchTo().Frame(Multyaddresstable1); driver.FindElement(By.XPath("/html/body/form/center/table/tbody/tr[4]/td[3]/input")).SendKeys(parcelNumber); IWebElement searchclick = driver.FindElement(By.XPath("/html/body/form/center/p/input[1]")); IJavaScriptExecutor js1 = driver as IJavaScriptExecutor; js1.ExecuteScript("arguments[0].click();", searchclick); Thread.Sleep(2000); try { driver.FindElement(By.XPath("/html/body/form/center/table/tbody/tr[2]/td[1]/a")).Click(); } catch { } } try { //No Data Found string nodata = driver.FindElement(By.XPath("/html/body/form/center/table/tbody")).Text; if (nodata.Contains("Assessor Inquiry: Please enter")) { HttpContext.Current.Session["Zero_Imperial"] = "Zero"; driver.Quit(); return("No Data Found"); } } catch { } //Property Details string Parcel_number = "", TaxRateArea = "", Propertytype = "", Acres = "", Lotsize = "", AsmtDescription = "", AsmtStatus = "", Land = "", Structure = "", Fixtures = "", Growing = "", TotalLandandImprovements = "", ManufacturedHome = "", PersonalProperty = "", HomeownersExemption = "", OtherExemption = "", NetAssessment = "", NetAssessment1 = ""; string Propertydetail = driver.FindElement(By.XPath("/html/body/form/center/table/tbody")).Text; Parcel_number = gc.Between(Propertydetail, "Assessor ID Number", "Tax Rate Area (TRA)"); TaxRateArea = gc.Between(Propertydetail, "Tax Rate Area (TRA)", "Last Recording Date"); Propertytype = gc.Between(Propertydetail, "Property Type", "Acres"); Acres = gc.Between(Propertydetail, "Acres", "Lot Size(SqFt)"); Lotsize = gc.Between(Propertydetail, "Lot Size(SqFt)", "Asmt Description"); AsmtDescription = gc.Between(Propertydetail, "Asmt Description", "Asmt Status"); AsmtStatus = gc.Between(Propertydetail, "Asmt Status", "Roll Values"); Land = gc.Between(Propertydetail, "Land", "Structure"); Structure = gc.Between(Propertydetail, "Structure", "Fixtures"); Fixtures = gc.Between(Propertydetail, "Fixtures", "Growing"); Growing = gc.Between(Propertydetail, "Growing", "Total Land and Improvements"); TotalLandandImprovements = gc.Between(Propertydetail, "Total Land and Improvements", "Manufactured Home"); ManufacturedHome = gc.Between(Propertydetail, "Manufactured Home", "Personal Property"); PersonalProperty = gc.Between(Propertydetail, "Personal Property", "Homeowners Exemption"); HomeownersExemption = gc.Between(Propertydetail, "Homeowners Exemption", "Other Exemption"); OtherExemption = gc.Between(Propertydetail, "Other Exemption", "Net Assessment"); NetAssessment1 = GlobalClass.After(Propertydetail, "Net Assessment").Trim(); NetAssessment = GlobalClass.Before(NetAssessment1, "Navigation").Trim(); gc.CreatePdf(orderNumber, Parcel_number, "Assessment Page", driver, "CA", "Imperial"); string Assessesult = Parcel_number.Trim() + "~" + TaxRateArea.Trim() + "~" + Propertytype.Trim() + "~" + Acres.Trim() + "~" + Lotsize.Trim() + "~" + AsmtDescription.Trim() + "~" + AsmtStatus.Trim() + "~" + Land.Trim() + "~" + Structure.Trim() + "~" + Fixtures.Trim() + "~" + Growing.Trim() + "~" + TotalLandandImprovements.Trim() + "~" + ManufacturedHome.Trim() + "~" + PersonalProperty.Trim() + "~" + HomeownersExemption.Trim() + "~" + OtherExemption.Trim() + "~" + NetAssessment.Trim(); gc.insert_date(orderNumber, Parcel_number, 1276, Assessesult, 1, DateTime.Now); AssessmentTime = DateTime.Now.ToString("HH:mm:ss"); //Tax Information Details driver.Navigate().GoToUrl("https://common2.mptsweb.com/mbc/imperial/tax/search"); IWebElement Taxauthoritytable = driver.FindElement(By.XPath("//*[@id='footer']/div[1]/div/div[1]/div[2]/div/ul")); Tax_Authority = GlobalClass.After(Taxauthoritytable.Text, "Tax Collector").Trim(); driver.FindElement(By.Id("SearchValue")).Clear(); IWebElement text = driver.FindElement(By.Id("SearchValue")); IJavaScriptExecutor js = (IJavaScriptExecutor)driver; js.ExecuteScript("document.getElementById('SearchValue').value='" + Parcel_number + "'"); //driver.FindElement(By.XPath("//*[@id='compwa']/form/div/input[2]")).SendKeys(Keys.Enter); //driver.FindElement(By.Id("SearchValue")).SendKeys(parcelNumber); gc.CreatePdf(orderNumber, Parcel_number, "Tax Information Parcel", driver, "CA", "Imperial"); driver.FindElement(By.Id("SearchSubmit")).Click(); Thread.Sleep(9000); for (int p = 0; p < 3; p++) { if (p > 0) { IWebElement PropertyHistry = driver.FindElement(By.Id("SelTaxYear")); SelectElement PropertySelect = new SelectElement(PropertyHistry); PropertySelect.SelectByIndex(p); Thread.Sleep(3000); //gc.CreatePdf(orderNumber, Parcel_number, "Peior", driver, "CA", "Imperial"); } driver.FindElement(By.Id("SearchSubmit")).Click(); Thread.Sleep(9000); gc.CreatePdf(orderNumber, Parcel_number, "Tax Information click" + p, driver, "CA", "Imperial"); IWebElement taxviewclick = driver.FindElement(By.Id("ResultDiv")); IList <IWebElement> Aherftax = taxviewclick.FindElements(By.TagName("a")); foreach (IWebElement taxviewdetail in Aherftax) { string Taxid = GlobalClass.After(taxviewdetail.GetAttribute("href"), "tax/main/"); if (p == 0) { if (taxviewdetail.Text.Contains("View Details")) { hreftax.Add(taxviewdetail.GetAttribute("href")); } } if (p > 0) { if (taxviewdetail.Text.Contains("View Details") && !hreftax.Contains(Taxid)) { hreftax.Add(taxviewdetail.GetAttribute("href")); } } } } int i = 1; int q = 0; foreach (string firstview in hreftax) { driver.Navigate().GoToUrl(firstview); Thread.Sleep(9000); gc.CreatePdf(orderNumber, Parcel_number, "Tax Information Detail" + q, driver, "CA", "Imperial"); IWebElement assmenttaxtable = driver.FindElement(By.XPath("/html/body/div[2]/section/div/div[1]/div/div[6]/ul/li[2]/a")); string assmenttaxhrdf = assmenttaxtable.GetAttribute("href"); assmenttaxtable.Click(); Thread.Sleep(9000); gc.CreatePdf(orderNumber, Parcel_number, "Assment Information Detail" + q, driver, "CA", "Imperial"); IWebElement rollcasttable = driver.FindElement(By.XPath("//*[@id='h2tab2']")); string rollcast = gc.Between(rollcasttable.Text, "Roll Category", "Doc Num").Trim(); string addresscs = GlobalClass.After(rollcasttable.Text, "Address"); driver.FindElement(By.XPath("/html/body/div[2]/section/div/div[1]/div/div[6]/ul/li[1]/a")).Click(); //Thread.Sleep(9000); //gc.CreatePdf(orderNumber, Parcel_number, "Tax Info Detail Pdf" + q, driver, "CA", "Imperial"); IWebElement taxinfotable = driver.FindElement(By.XPath("/html/body/div[2]/section/div/div[1]/div/div[6]/div/div[1]")); string Assessment1 = gc.Between(taxinfotable.Text, "ASMT", "PARCEL"); string taxyear = gc.Between(taxinfotable.Text, "YEAR", "VIEW TAX BILL").Trim(); IList <IWebElement> viwetaxbill = taxinfotable.FindElements(By.TagName("a")); foreach (IWebElement taxyearelement in viwetaxbill) { if (taxyearelement.Text.Contains("VIEW TAX BILL")) { string viewhref = taxyearelement.GetAttribute("href"); gc.downloadfile(viewhref, orderNumber, Parcel_number, "ViewTaxBill.pdf" + i, "CA", "Imperial"); i++; } } string Balance = ""; IWebElement compain = driver.FindElement(By.XPath("//*[@id='h2tab1']/div[2]")); string compain1 = GlobalClass.Before(compain.Text, "Total Due"); string TotalDuecompain = gc.Between(compain.Text, "Total Due", "Total Paid").Trim(); string TotalPaidcompain = gc.Between(compain.Text, "Total Paid", "Total Balance").Trim(); string TotalBalance = GlobalClass.After(compain.Text, "Total Balance"); for (int j = 1; j < 3; j++) { IWebElement firstinstalment = driver.FindElement(By.XPath("//*[@id='h2tab1']/div[1]/div[" + j + "]")); string instalfirst = GlobalClass.Before(firstinstalment.Text, "Paid Status"); string PaidStatus1 = "", Due_PaidDate = ""; if (firstinstalment.Text.Contains("Due/Paid Date")) { PaidStatus1 = gc.Between(firstinstalment.Text, "Paid Status", "Due/Paid Date").Trim(); Due_PaidDate = gc.Between(firstinstalment.Text, "Due/Paid Date", "Total Due").Trim(); } else { PaidStatus1 = gc.Between(firstinstalment.Text, "Paid Status", "Paid Date").Trim(); Due_PaidDate = gc.Between(firstinstalment.Text, "Paid Date", "Total Due").Trim(); } string totaldue = gc.Between(firstinstalment.Text, "Total Due", "Total Paid").Trim(); string TotalPaid = gc.Between(firstinstalment.Text, "Total Paid", "Balance").Trim(); if (firstinstalment.Text.Contains("ADD")) { Balance = gc.Between(firstinstalment.Text, "Balance", "\r\nADD").Trim(); } if (!firstinstalment.Text.Contains("ADD")) { Balance = GlobalClass.After(firstinstalment.Text, "Balance").Trim(); } string taxresult = addresscs + "~" + rollcast + "~" + Assessment1 + "~" + taxyear + "~" + instalfirst + "~" + PaidStatus1 + "~" + Due_PaidDate + "~" + totaldue + "~" + TotalPaid + "~" + Balance + "~" + compain1 + "~" + TotalDuecompain + "~" + TotalPaidcompain + "~" + TotalBalance + "~" + Tax_Authority; gc.insert_date(orderNumber, Parcel_number, 1277, taxresult, 1, DateTime.Now); } //TaxCode Details try { driver.FindElement(By.XPath("/html/body/div[2]/section/div/div[1]/div/div[6]/ul/li[3]/a")).Click(); Thread.Sleep(9000); gc.CreatePdf(orderNumber, Parcel_number, "Tax Code Detail" + q, driver, "CA", "Imperial"); for (int k = 1; k < 15; k++) { try { IWebElement Taxcodeinfotable = driver.FindElement(By.XPath("//*[@id='h2tab3']/div[" + k + "]/div/div/dl")); string tax_code = gc.Between(Taxcodeinfotable.Text, "Tax Code", "Description").Trim(); string Description = gc.Between(Taxcodeinfotable.Text, "Description", "Rate").Trim(); string Rate = gc.Between(Taxcodeinfotable.Text, "Rate", "1st").Trim(); string Firstinstalment = gc.Between(Taxcodeinfotable.Text, "1st Installment", "2nd ").Trim(); string secondinstalment = gc.Between(Taxcodeinfotable.Text, "2nd Installment", "Total").Trim(); string Total = gc.Between(Taxcodeinfotable.Text, "Total", "Phone").Trim(); string Phone = GlobalClass.After(Taxcodeinfotable.Text, "Phone").Trim(); string Taxcoderesult = taxyear + "~" + tax_code + "~" + Description + "~" + Rate + "~" + Firstinstalment + "~" + secondinstalment + "~" + Total + "~" + Phone; gc.insert_date(orderNumber, Parcel_number, 1278, Taxcoderesult, 1, DateTime.Now); } catch { } } } catch { } //Default tax string defaulltyear = "", assessnumber = ""; try { IWebElement taxinfotablede = driver.FindElement(By.XPath("/html/body/div[2]/section/div/div[1]/div/div[6]/div/div[1]")); defaulltyear = gc.Between(taxinfotable.Text, "YEAR", "VIEW TAX BILL"); assessnumber = gc.Between(taxinfotable.Text, "ASMT", "PARCEL"); driver.FindElement(By.XPath("/html/body/div[2]/section/div/div[1]/div/div[6]/ul/li[4]/a")).Click(); Thread.Sleep(2000); gc.CreatePdf(orderNumber, Parcel_number, "Default Tax Detail" + q, driver, "CA", "Imperial"); IWebElement defaulttaxtable = driver.FindElement(By.XPath("//*[@id='h2tab4']/div[2]")); string DefaultNumber = gc.Between(defaulttaxtable.Text, "Default Number", "Pay Plan in Effect"); string PayEffect = gc.Between(defaulttaxtable.Text, "in Effect", "Annual Payment"); string AnnualPayment = gc.Between(defaulttaxtable.Text, "Annual Payment", "\r\nBalance"); string Balance1 = GlobalClass.After(defaulttaxtable.Text, "Balance\r\n"); string defaulttaxresult = defaulltyear.Trim() + "~" + assessnumber.Trim() + "~" + DefaultNumber + "~" + PayEffect + "~" + AnnualPayment + "~" + Balance1; gc.insert_date(orderNumber, Parcel_number, 1279, defaulttaxresult, 1, DateTime.Now); } catch { } q++; } TaxTime = DateTime.Now.ToString("HH:mm:ss"); LastEndTime = DateTime.Now.ToString("HH:mm:ss"); gc.insert_TakenTime(orderNumber, "CA", "Imperial", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime); driver.Quit(); gc.mergpdf(orderNumber, "CA", "Imperial"); return("Data Inserted Successfully"); } catch (Exception ex) { driver.Quit(); GlobalClass.LogError(ex, orderNumber); throw ex; } } }
/// <summary> /// Initializes a new instance of the <see cref="AsyncJavaScriptExecutor"/> class. /// </summary> /// <param name="executor">An <see cref="IJavaScriptExecutor"/> object capable of executing JavaScript.</param> public AsyncJavaScriptExecutor(IJavaScriptExecutor executor) { this.executor = executor; }
private void init() { webDriver.Navigate().GoToUrl("http://play.pokemonshowdown.com"); IWebElement teamBuilder = webDriver.FindElement(By.CssSelector("div.menugroup:nth-child(2) > p:nth-child(1) > button:nth-child(1)")); teamBuilder.Click(); IWebElement newTeam = webDriver.FindElement(By.Name("newTop")); newTeam.Click(); IWebElement import = webDriver.FindElement(By.Name("import")); import.Click(); ReadOnlyCollection <IWebElement> teamimport = webDriver.FindElements(By.ClassName("textbox")); foreach (IWebElement iwe in teamimport) { string value = iwe.GetAttribute("value"); if (value == null || value.Equals("")) { iwe.SendKeys(config.team); break; } } IWebElement save = webDriver.FindElement(By.Name("saveImport")); save.Click(); Thread.Sleep(500); ReadOnlyCollection <IWebElement> selectTier = webDriver.FindElements(By.Name("format")); foreach (IWebElement iwe in selectTier) { if (iwe.Text.Contains("Select a format")) { iwe.Click(); ReadOnlyCollection <IWebElement> selectFormat = webDriver.FindElements(By.Name("selectFormat")); foreach (IWebElement iwe2 in selectFormat) { if (iwe2.Text == "OU") { iwe2.Click(); break; } } break; } } Thread.Sleep(500); ReadOnlyCollection <IWebElement> home = webDriver.FindElements(By.ClassName("button")); foreach (IWebElement iwe in home) { if (iwe.Text.Contains("Home")) { iwe.Click(); break; } } IWebElement login = webDriver.FindElement(By.Name("login")); login.Click(); IWebElement username = webDriver.FindElement(By.CssSelector(".ps-popup > form:nth-child(1) > p:nth-child(1) > label:nth-child(1) > .textbox")); username.SendKeys(config.user); IWebElement submit = webDriver.FindElement(By.CssSelector(".buttonbar > button:nth-child(1)")); submit.Click(); Thread.Sleep(1000); IWebElement pass = webDriver.FindElement(By.CssSelector("body > div.ps-overlay > div > form > p:nth-child(4) > label > input")); pass.SendKeys(config.password); login = webDriver.FindElement(By.CssSelector("p.buttonbar:nth-child(5) > button:nth-child(1)")); login.Click(); IWebElement musik = webDriver.FindElement(By.CssSelector("button.icon:nth-child(2)")); musik.Click(); webDriver.FindElement(By.CssSelector(".ps-popup > p:nth-child(3) > label:nth-child(1) > input:nth-child(1)")).Click(); musik = webDriver.FindElement(By.CssSelector("button.icon:nth-child(2)")); musik.Click(); IJavaScriptExecutor js = webDriver as IJavaScriptExecutor; js.ExecuteScript("window.app.tryJoinRoom(\"Pokefans\");"); Thread.Sleep(1000); }
public Sniff(IJavaScriptExecutor driver, string name) { this.driver = driver; this.name = name; }
public string ElementAction(string action, string xpath = "", int index = 0, string text = "", int waits = 60, int delay = 0, bool is_exception = true) { if (action.Equals(SWITCH_FRAME)) { driver.SwitchTo().Frame(driver.FindElements(By.XPath(xpath))[index]); Sleep(delay); return(""); } int wait = 0; while (driver.FindElements(By.XPath(xpath)).Count == 0 && wait < waits) { Sleep(1); wait++; } if (wait == waits) { if (is_exception) { throw new Exception(string.Format("Xpath not found: {0}", xpath)); } else { return(""); } } if (index < 0) { index += driver.FindElements(By.XPath(xpath)).Count; } switch (action) { case CLICK: try { driver.FindElements(By.XPath(xpath))[index].Click(); } catch { IJavaScriptExecutor executor = (IJavaScriptExecutor)driver; executor.ExecuteScript("arguments[0].click();", driver.FindElements(By.XPath(xpath))[index]); } Sleep(delay); return(""); case CLEAR: driver.FindElements(By.XPath(xpath))[index].Clear(); Sleep(delay); return(""); case SEND_KEYS: driver.FindElements(By.XPath(xpath))[index].SendKeys(text); Sleep(delay); return(""); case GET_TEXT: string t = driver.FindElements(By.XPath(xpath))[index].Text; Console.WriteLine("t: " + t); Sleep(delay); return(t); case GET_INNER_HTML: string innerHTML = driver.FindElements(By.XPath(xpath))[index].GetAttribute("innerHTML"); Sleep(delay); return(innerHTML); case GET_OUTER_HTML: string outerHTML = driver.FindElements(By.XPath(xpath))[index].GetAttribute("outerHTML"); Sleep(delay); return(outerHTML); case SWITCH_FRAME: driver.SwitchTo().Frame(driver.FindElements(By.XPath(xpath))[index]); Sleep(delay); return(""); case SWITCH_DEFAULT: driver.SwitchTo().DefaultContent(); Sleep(delay); return(""); default: return(""); } }
public static object ExecuteScript(string script) { exeScript = ((IJavaScriptExecutor)ObjectRepository.Driver); return exeScript.ExecuteScript(script); }
/// <summary> /// Initializes a new instance of the <see cref="TestDriver"/> class. /// Injects the specflow.driver.js library using the provided <see cref="IJavaScriptExecutor"/>. /// </summary> /// <param name="javascriptExecutor">The IJavaScriptExecutor to use.</param> public TestDriver(IJavaScriptExecutor javascriptExecutor) { this.javascriptExecutor = javascriptExecutor; }