public void Start <TPage>(MainFlowData mainFlowData, Action <TPage> action) where TPage : UIPage
        {
            using (var driver = new WebDriverWrapper())
            {
                AddRunningDriver(driver);

                driver.BrowserStart();

                try
                {
                    mainFlowData.WindowsHandlerData.StartPageId = driver.WebDriver.CurrentWindowHandle;
                    var page = UIPage.CreatePage <TPage>(driver);
                    action(page);
                }
                catch (Exception ex)
                {
                    var screenshotFile = driver.TakeScreenshot(TestContext.CurrentContext.Test.MethodName);
                    TestContext.AddTestAttachment(screenshotFile);

                    throw ex;
                }
                finally
                {
                    RemoveRunningDriver(driver);
                }
            }
        }
Beispiel #2
0
        public static TPage of(WebDriverWrapper driver)
        {
            TPage page = new TPage();

            page.init(driver);
            return(page);
        }
        public void Start <TPage>(Underwriter userName, string password, Action <TPage> action) where TPage : UIPage
        {
            using (var driver = new WebDriverWrapper())
            {
                AddRunningDriver(driver);
                driver.Configuration.UserName = userName.ToString();
                driver.Configuration.UserPass = password;

                driver.BrowserStart();

                try
                {
                    var page = UIPage.CreatePage <TPage>(driver);
                    action(page);
                }
                catch (Exception ex)
                {
                    var screenshotFile = driver.TakeScreenshot(TestContext.CurrentContext.Test.MethodName);
                    TestContext.AddTestAttachment(screenshotFile);

                    throw ex;
                }
                finally
                {
                    RemoveRunningDriver(driver);
                }
            }
        }
		private void ChallengerForm_Load(object sender, EventArgs e)
		{
			LoadOpponents();
			WebDriver = WebDriverWrapper.GetChrome();
			WebDriver.SignIn();

			competitionsComboBox.Items.AddRange(AIGamesCompetitions.All.Select(comp => ComboboxICompetitiontem.Create(comp)).ToArray());
			competitionsComboBox.Text = AppConfig.Competition_Default;
			if (String.IsNullOrEmpty(competitionsComboBox.Text))
			{
				competitionsComboBox.Text = AIGamesCompetitions.All.Default.DisplayName;
			}
		}
Beispiel #5
0
        public static void Setup(IObjectContainer testRunObjectContainer, ITestOutputHelper testConsole, ITestRunContext testRunContext)
        {
            var webBrowserType = testRunContext.AppSettings?.WebBrowserType;

            if (webBrowserType == null)
            {
                testConsole.WriteLine("WARNING: Web driver browser type was not set in test run context. Defaulting to Edge");
                webBrowserType = WebDriverBrowserTypes.Edge;
            }
            var webDriverWrapper = new WebDriverWrapper();

            webDriverWrapper.Initialize(webBrowserType.Value);
            testRunObjectContainer.RegisterInstanceAs <IWebDriverWrapper>(webDriverWrapper);
        }
Beispiel #6
0
        public WebDriverWrapper GetDriver(string item1, string item2)
        {
            var driver = driverPooling.FirstOrDefault(x => x.Status == WebDriverStatus.Ready);

            if (driver == null)
            {
                driver = new WebDriverWrapper()
                {
                    Status    = WebDriverStatus.NotReady,
                    WebDriver = new PhantomJSDriver(driverService)
                };
                driverPooling.Add(driver);
            }
            if (!string.IsNullOrEmpty(item1) && !string.IsNullOrEmpty(item2))
            {
                String script = "return phantom.setProxy('{0}', {1}, 'http', '', '');";
                string func   = string.Format(script, item1, item2);
                driver.WebDriver.ExecutePhantomJS(func);
            }

            return(driver);
        }
Beispiel #7
0
 public void init(WebDriverWrapper driver)
 {
     this.driver = driver;
     new PageObjectFactory(driver).InitElements(this);
 }
Beispiel #8
0
        public static async Task AnalysisPost(IWebElement element, Dictionary <string, string> state, WebDriverWrapper webDriverWrapper)
        {
            var tagList        = element.FindElements(By.CssSelector(".dm-tag.dm-tag-a"));
            var createTiem     = element.FindElement(By.CssSelector(".meta-info.mb20 span")).GetAttribute("innerText");
            var content        = Encoding.UTF8.GetString(Encoding.Default.GetBytes(element.FindElement(By.CssSelector(".content")).GetAttribute("innerHTML")));
            var postImgUrlList = element.FindElements(By.CssSelector(".album .inner-container img"));
            var nickName       = state["nickName"];
            var avatar         = state["avatar"];
            var userModel      = GetOrSetUser(nickName, avatar);
            var dbContext      = GetDbContext();
            var postImgList    = new List <PostEntryFile>();
            var imgindex       = 1;

            if (dbContext.PostEntry.Any(x => x.TextContent == content))
            {
                return;
            }
            foreach (var item in postImgUrlList)
            {
                var oldPath = item.GetAttribute("src");
                var key     = "postEntryFile/" + nickName + "/" + Guid.NewGuid().ToString();
                await UploadQiniu(oldPath, key);

                postImgList.Add(new PostEntryFile
                {
                    ActualPath = "https://mioto.milbit.com/" + key,
                    Name       = key,
                    Type       = PostEntryFileType.Image,
                    Order      = imgindex,
                    Tag        = "半次元"
                });
                imgindex++;
            }

            var postEntry = new PostEntry
            {
                Id                = Guid.NewGuid(),
                CreateTime        = DateTime.Parse(createTiem),
                TimeStamp         = TimeStamp.Get(),
                TextContent       = content,
                PostEntryFileList = postImgList,
                UserId            = userModel.Id,
                PostEntryTags     = new List <PostEntryTag> {
                    new PostEntryTag {
                        CreateTime = DateTime.Now,
                        Id         = Guid.NewGuid(),
                        Name       = "Coser"
                    }
                }
            };

            dbContext.PostEntry.Add(postEntry);
            await dbContext.SaveChangesAsync();
        }
Beispiel #9
0
        public static async Task AnalysisProfile(IWebElement element, Dictionary <string, string> state, WebDriverWrapper webDriverWrapper)
        {
            for (int i = 0; i < 4; i++)
            {
                webDriverWrapper.WebDriver.ExecuteScript("window.scrollTo(0,document.body.offsetHeight)");
                Thread.Sleep(2 * 1000);
            }
            var body = element.FindElement(By.TagName("body")).GetAttribute("innerHTML");

            var profileElement = element.FindElement(By.CssSelector(".user-info"));

            var avatar   = profileElement.FindElement(By.CssSelector(".user-info-top img.avatar-img")).GetAttribute("src");
            var nickName = profileElement.FindElement(By.CssSelector(".user-info-bottom .user-info-name")).GetAttribute("innerText");

            var userModel = GetOrSetUser(nickName, avatar);
            var _curState = ExtensionState(state);

            _curState.Add("nickName", nickName);
            _curState.Add("avatar", avatar);

            var exutor      = TaskExutor.Instance;
            var contentWrap = element.FindElement(By.CssSelector(".one-fall-li-wrap"));
            var postUrlList = contentWrap.FindElements(By.CssSelector(".desc-content"));

            foreach (var postUrlElement in postUrlList)
            {
                var postUrl        = postUrlElement.GetAttribute("href");
                var postSpiderTask = new TaskSpider(postUrl, _curState);
                Task.Run(() => exutor.SetTask(postSpiderTask, AnalysisPost)).Wait();
            }
        }
Beispiel #10
0
            private VoteContext()
            {
                Nickname = VoteLoop.Nickname;

                wrapper = DriverInfo.CreateWrapper();
            }
Beispiel #11
0
 public LoginPage(WebDriverWrapper webdriver) : base(webdriver)
 {
     PageUrl = "http://www.quizful.net/LoginAction.loginForm";
 }
 private void RemoveRunningDriver(WebDriverWrapper driver)
 {
     runningDrivers.Remove(driver);
 }
 private void AddRunningDriver(WebDriverWrapper driver)
 {
     runningDrivers.Add(driver);
 }
Beispiel #14
0
 public void OneTimeSetUp()
 {
     _driverFactory    = new WebDriverWrapperFactory();
     _driver           = _driverFactory.WebDriverWrapper;
     PageObjectFactory = new PageObjectFactory(_driver);
 }
Beispiel #15
0
 public PageObjectFactory(WebDriverWrapper driver)
 {
     this.driver = driver;
 }
Beispiel #16
0
 public StartPage(WebDriverWrapper page) : base(page)
 {
 }
Beispiel #17
0
 public AbstractPage(IWebDriver driver)
 {
     this.driver = driver;
     wrapper     = new WebDriverWrapper(this.driver);
 }
Beispiel #18
0
 public NUnitHomePage(WebDriverWrapper driver) : base(driver)
 {
 }
Beispiel #19
0
 public BasePage(WebDriverWrapper driver)
 {
     Driver = driver;
 }
 public HomePage(WebDriverWrapper webdriver) : base(webdriver)
 {
     PageUrl = "http://www.quizful.net/";
 }
Beispiel #21
0
        public MainFlowData GetCurrentWebDriverWrapper(WebDriverWrapper wrapper)
        {
            CurrentWebDriverWrapper = wrapper;

            return(this);
        }
Beispiel #22
0
        public static async Task AnalysisMain(IWebElement element, Dictionary <string, string> state, WebDriverWrapper webDriverWrapper)
        {
            var regex  = new Regex(@"(?<=avatar\/)(\d+)");
            var exutor = TaskExutor.Instance;

            for (int i = 0; i < 4; i++)
            {
                webDriverWrapper.WebDriver.ExecuteScript("window.scrollTo(0,document.body.offsetHeight)");
                Thread.Sleep(2 * 1000);
            }
            var _curState = ExtensionState(state);
            //解析 post 列表
            var _elementPostList = webDriverWrapper.WebDriver.FindElements(By.CssSelector(".rank-index-box .rank-cos-item"));

            for (int i = 2; i < _elementPostList.Count;)
            {
                var item = _elementPostList[i++];

                var itemHtml2 = _elementPostList[3].GetAttribute("innerHTML");
                var itemHtml  = item.GetAttribute("innerHTML");
                var imgSrc    = item.FindElement(By.CssSelector(".rank-cos-bottom img")).GetAttribute("src");

                var userId     = regex.Match(imgSrc);
                var profileUrl = "https://bcy.net/u/" + userId;
                _curState.Add("profileUrl", profileUrl);
                var profileSpiderTask = new TaskSpider(profileUrl, _curState);
                await Task.Run(() => exutor.SetTask(profileSpiderTask, AnalysisProfile));

                //var postUrl = item.FindElement(By.CssSelector("a")).GetAttribute("href");
                //var postSpiderTask = new TaskSpider(postUrl, _curState);
                //exutor.SetTask(postSpiderTask, AnalysisPost);
            }
        }
 public void setUp()
 {
     driver     = new WebDriverProvider().getDriver();
     driver.Url = getUrl();
     page       = AbstractPage <T> .of(driver);
 }
        // Other objects representing various components, such as text fields, panels, drop-down lists etc. can be here.

        public ConcretePageExample(WebDriverWrapper driver) : base(driver)
        {
            SpecificButton1 = new Button(this, ButtonLocator1);
            SpecificButton2 = new Button(this, ButtonLocator2);
        }
 public void Setup()
 {
     webdriver = new WebDriverWrapper();
 }