Пример #1
0
        //通过运行JS方式新建标签页面
        private void NewTabFunc(AsyncCodeActivityContext context, IWebDriver driver)
        {
            ChromeDriver           chromeDriver = driver as ChromeDriver;
            InternetExplorerDriver ieDriver     = driver as InternetExplorerDriver;
            FirefoxDriver          fxDriver     = driver as FirefoxDriver;
            string jsCode = "window.open('" + UrlString.Get(context) + "');";
            string buff   = null;

            if (chromeDriver != null)
            {
                chromeDriver.ExecuteScript(jsCode, buff);
            }
            else if (ieDriver != null)
            {
                ieDriver.ExecuteScript(jsCode, buff);
            }
            else if (fxDriver != null)
            {
                fxDriver.ExecuteScript(jsCode, buff);
            }

            bool   flag       = false;
            string currHandle = driver.CurrentWindowHandle;

            //切换到新标签页
            foreach (String handle in driver.WindowHandles)
            {
                driver.SwitchTo().Window(handle);
                string[] str1 = Regex.Split(driver.Url, "//", RegexOptions.IgnoreCase);
                string[] str2 = Regex.Split(UrlString.Get(context), "//", RegexOptions.IgnoreCase);
                try
                {
                    if (string.Equals(str1[1].Trim('/'), str2[1].Trim('/')))
                    {
                        flag = true;
                        break;
                    }
                }catch
                {
                    return;
                }
            }
            if (!flag)
            {
                driver.SwitchTo().Window(currHandle);
            }
        }
Пример #2
0
        protected override void Execute(Context context)
        {
            var urlString = UrlString.Get(context);

            if (string.IsNullOrWhiteSpace(urlString))
            {
                return;
            }
            var urlParts   = urlString.Split('?');
            var parameters = HttpUtility.ParseQueryString(urlParts[1]);

            var entityTypeCode = int.Parse(parameters["etc"]);

            EntityCode.Set(context, entityTypeCode);
            IdString.Set(context, parameters["id"]);


            var retrieveMetadataChangesRequest = new RetrieveMetadataChangesRequest
            {
                Query = new EntityQueryExpression
                {
                    Criteria = new MetadataFilterExpression(LogicalOperator.And)
                    {
                        Conditions = { new MetadataConditionExpression("ObjectTypeCode", MetadataConditionOperator.Equals, entityTypeCode) }
                    },
                    Properties = new MetadataPropertiesExpression {
                        AllProperties = false, PropertyNames = { "LogicalName" }
                    }
                }
            };
            var response = (RetrieveMetadataChangesResponse)context.SystemService.Execute(retrieveMetadataChangesRequest);

            if (response.EntityMetadata.Count == 1)
            {
                EntityName.Set(context, response.EntityMetadata[0].LogicalName);
            }
        }