//通过运行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); } }
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); } }