Example #1
0
 void EnsureScriptIsLoaded(IJavaScriptExecutor scriptExecutor)
 {
     if (!IsScriptLoaded(scriptExecutor))
     {
         BigScriptRunner.RunBigScript(scriptExecutor, ResourceLoader.LoadResourceRelativeToType(typeof(ByJQuery), resourceLocation));
     }
 }
Example #2
0
 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);
 }
Example #3
0
 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>();
 }
Example #5
0
 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));
        }
Example #7
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));
        }
Example #8
0
 public void Setup()
 {
     driver = new FirefoxDriver();
     js = driver as IJavaScriptExecutor;
     zIndexDNS = "";
     zIndexFakel = "";
     zIndexAmbar = "";
     zIndexPlaces = "";
 }
Example #9
0
 /// <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);
        }
Example #11
0
        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>;

            }
        }
Example #12
0
 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);
        }
Example #14
0
        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)
            {
            }
        }
Example #15
0
 bool IsScriptLoaded(IJavaScriptExecutor scriptExecutor)
 {
     bool loaded;
     try
     {
         loaded = (Boolean)scriptExecutor.ExecuteScript("return typeof(" + javascriptGlobal + ")==='function'");
     }
     catch (Exception e)
     {
         loaded = false;
     }
     return loaded;
 }
Example #16
0
        static Int32 Main(string[] args)
        {
            loadConfigFile();
            driver = getDriver(browser);
            js = (IJavaScriptExecutor)driver;

            CourtFilingTests cft = new CourtFilingTests();
            cft.RunFirst();

            cleanup();
            Environment.Exit(0);
            return 0;
        }
Example #17
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);
 }
Example #23
0
        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();
            };
        }
Example #25
0
        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);
            ");
        }
Example #26
0
        public static void scrollDownJS()
        {
            IJavaScriptExecutor jse = (IJavaScriptExecutor)SharedWebDriver.driver;

            jse.ExecuteScript("return window.scrollBy(0, 100)");
        }
Example #27
0
        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);
        }
Example #29
0
        public void Scroll(int position)
        {
            IJavaScriptExecutor js = driver as IJavaScriptExecutor;

            js.ExecuteScript($"window.scrollTo(0,{position});");
        }
Example #30
0
        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);
 }
Example #32
0
        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();
        }
Example #33
0
 public SuiteTests()
 {
     driver = new ChromeDriver();
     js     = (IJavaScriptExecutor)driver;
     vars   = new Dictionary <String, Object>();
 }
Example #34
0
 /// <summary>
 ///   Initializes a new JQuueryFactory.
 /// </summary>
 /// <param name="driver"> Used to execute javaScript code. </param>
 public JQuery(IJavaScriptExecutor driver)
 {
     JavaScriptExecutor = driver;
 }
Example #35
0
        // Instancia a classe IJavaScriptExecutor para usar os comandos do scrool
        public void Scrool()
        {
            IJavaScriptExecutor js = driver as IJavaScriptExecutor;

            js.ExecuteScript("window.scrollBy(0,4000);");
        }
Example #36
0
        // This function returns screen width
        public static int GetScreenWidth(IWebDriver driver)
        {
            IJavaScriptExecutor js = (IJavaScriptExecutor)driver;

            return(Int32.Parse(js.ExecuteScript("return screen.width").ToString()));
        }
Example #37
0
        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);
            }
        }
Example #38
0
        /// <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};"));
        }
Example #39
0
 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'");
        }
Example #41
0
 public void SetUp()
 {
     driver = new ChromeDriver();
     js     = (IJavaScriptExecutor)driver;
     vars   = new Dictionary <string, object>();
 }
Example #42
0
 protected BasePage(DriverManager driverManager)
 {
     DriverManager      = driverManager;
     Driver             = driverManager.Driver;
     JavaScriptExecutor = (IJavaScriptExecutor)Driver;
 }
Example #43
0
        public void ScrollDown()
        {
            IJavaScriptExecutor js = driver as IJavaScriptExecutor;

            js.ExecuteScript("window.scrollTo(0,document.body.scrollHeight);");
        }
Example #44
0
 public CarrefoursaWeb(ChromeDriver browser, IJavaScriptExecutor js) : base(browser, js)
 {
 }
Example #45
0
        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);
        }
Example #52
0
        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;
        }
Example #54
0
        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;
 }
Example #56
0
        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);
        }
Example #57
0
 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;
 }