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); } } }
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; } }
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); }
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); }
public void init(WebDriverWrapper driver) { this.driver = driver; new PageObjectFactory(driver).InitElements(this); }
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(); }
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(); } }
private VoteContext() { Nickname = VoteLoop.Nickname; wrapper = DriverInfo.CreateWrapper(); }
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); }
public void OneTimeSetUp() { _driverFactory = new WebDriverWrapperFactory(); _driver = _driverFactory.WebDriverWrapper; PageObjectFactory = new PageObjectFactory(_driver); }
public PageObjectFactory(WebDriverWrapper driver) { this.driver = driver; }
public StartPage(WebDriverWrapper page) : base(page) { }
public AbstractPage(IWebDriver driver) { this.driver = driver; wrapper = new WebDriverWrapper(this.driver); }
public NUnitHomePage(WebDriverWrapper driver) : base(driver) { }
public BasePage(WebDriverWrapper driver) { Driver = driver; }
public HomePage(WebDriverWrapper webdriver) : base(webdriver) { PageUrl = "http://www.quizful.net/"; }
public MainFlowData GetCurrentWebDriverWrapper(WebDriverWrapper wrapper) { CurrentWebDriverWrapper = wrapper; return(this); }
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(); }