コード例 #1
0
        public void ATC9361_CRMRegisterDocumentIntoInvestigationCase()
        {
            User user = this.environment.GetUser(SecurityRole.Investigations);
            new LoginDialog().Login(user.Id, user.Password);

            HomePage homePage = new HomePage(driver);
            homePage.HoverCRMRibbonTab();
            homePage.ClickInvestigationsRibbonButton();
            homePage.HoverInvestigationsRibbonTab();
            homePage.ClickInvestigationsCasesRibbonButton();

            InvestigationCaseSearchPage investigationsCaseSearchPage = new InvestigationCaseSearchPage(driver);
            investigationsCaseSearchPage.ClickNewInvestigationCaseButton();
            InvestigationCasePage investigationCasePage = new InvestigationCasePage(driver);
            investigationCasePage.ClickSaveButton();
            var investigationCase = investigationCasePage.GetInvestigationCaseNumber();

            homePage.HoverClientRibbonTab(investigationCase.ToUpperInvariant());
            Thread.Sleep(500);
            driver.FindElement(By.XPath("//a[@title='Documents' and @id='Node_navDocument']")).Click();

            var directoryName = UICommon.GetAlertMessage(driver).Split(new[]{"/"}, StringSplitOptions.RemoveEmptyEntries).Last();

            var baseWindow = driver.CurrentWindowHandle; //Records the current window handle
            var gridFrame = driver.SwitchTo().DefaultContent().SwitchTo().Frame("contentIFrame1").SwitchTo().Frame("areaDocumentFrame").SwitchTo().Frame("gridIframe");
            var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
            wait.Until(ExpectedConditions.ElementIsVisible(By.Id("mnuNewButton")));
            gridFrame.FindElement(By.Id("mnuNewButton")).Click();
            Thread.Sleep(1000);
            gridFrame.FindElement(By.XPath("//span[contains(text(), 'Investigation Case Document')]")).Click();
            Thread.Sleep(3000);
            SwitchWindow(baseWindow);

            var a = new Actions(driver);
            var fileUpload = driver.SwitchTo().Frame("spPageFrame").FindElement(By.Id("ctl00_PlaceHolderMain_UploadDocumentSection_ctl05_InputFile"));
            a.DoubleClick(fileUpload).Build().Perform();
            Thread.Sleep(2000);

            var myFile = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "inv_case_doc.txt");
            if (File.Exists(myFile)) File.Delete(myFile);
            var sw = new StreamWriter(myFile);
            sw.WriteLine("Hello world!");
            sw.Flush();
            sw.Close();

            var ai = new AutoItX3();
            var winTitle = "Choose File to Upload";
            int found = ai.WinWait(winTitle, "", Properties.Settings.Default.SHORT_WAIT_SECONDS);

            if (found == 1)
            {
                ai.WinActivate(winTitle);
                ai.Send(myFile);
                ai.Send("{ENTER}");
                ai.WinWaitClose(winTitle);
            }
            else
            {
                throw new Exception("Unable to locate open file dialog");
            }

            wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
            wait.Until(ExpectedConditions.ElementIsVisible(By.Id("ctl00_PlaceHolderMain_ctl03_RptControls_btnOK")));
            driver.FindElement(By.Id("ctl00_PlaceHolderMain_ctl03_RptControls_btnOK")).Click();

            wait.Until(ExpectedConditions.ElementIsVisible(By.Id("Ribbon.DocLibListForm.Edit.Commit.Publish-Large")));
            driver.FindElement(By.Id("Ribbon.DocLibListForm.Edit.Commit.Publish-Large")).Click();

            gridFrame = driver.SwitchTo().DefaultContent().SwitchTo().Frame("contentIFrame1").SwitchTo().Frame("areaDocumentFrame").SwitchTo().Frame("gridIframe");
            var table = gridFrame.FindElement(By.XPath("//div[@id='divDataArea']/div/table"));

            // verify document is in the table
            if (!table.IsTextInTable("inv_case_doc.txt"))
                throw new Exception("Unable to locate file in CRM");

            gridFrame.FindElement(By.Id("openSharepointButton")).Click();
            Thread.Sleep(5000);
            SwitchWindow(baseWindow);

            var spTable = driver.FindElement(By.Id("onetidDoclibViewTbl0"));

            // verify document is in the table
            if (!spTable.IsTextInTable("inv_case_doc.txt"))
                throw new Exception("Unable to locate file in Sharepoint");

            driver = driver.SwitchTo().Window(baseWindow);
        }