首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成代理无法在DateTimePicker中选择日期

生成代理无法在DateTimePicker中选择日期
EN

Stack Overflow用户
提问于 2019-01-11 15:09:51
回答 1查看 38关注 0票数 0

我有一个Selenium测试,它在ASP.NET MVC5视图的datetimepicker上选择日期。问题是,当我在Visual Studio中运行测试时,Selenium代码运行得很好。当代码在我自己的机器上运行的TFS生成代理上运行时,生成代理不能选择日期。单击日期后,应突出显示所选日期,以指示该日期已被选中。这在Visual Studio中会发生,但在构建代理上不会发生。

我的Selenium代码如下所示:

_driver.Manage().Timeouts().ImplicitWait =新的TimeSpan(0,0,10);

代码语言:javascript
复制
            _driver.Navigate().GoToUrl(<someurl>);

            _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

            //Auto 3
            //IWebElement query = _driver.FindElement(By.Id("btn_car_1024"));
            var query = _driver.FindElementsByClassName("btn_car").FirstOrDefault();
            query.Click();

            _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

            //Select a date in the calendar
            //_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

            _driver.FindElement(By.ClassName("datepicker")).Click();

            _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

            var elements = _driver.FindElements(By.ClassName("day"));

            var dateLinkText = DateTime.Now.AddDays(1).Day.ToString();

            var selectedElements = elements.Where(p => p.Text == dateLinkText);
            _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

            if (selectedElements == null)
            {
                throw new Exception("SelectedElements null");
            }
            if (selectedElements.Count() == 0)
            {
                throw new Exception("Length null");
            }
            var selectedElement = selectedElements.FirstOrDefault();

            selectedElement.Click();
            _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

            //Select time
            var timeDropDownList = _driver.FindElementById("Time");
            timeDropDownList.Click();

            var selectElement = new OpenQA.Selenium.Support.UI.SelectElement(timeDropDownList);
            selectElement.SelectByText("10:00-11:00");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-15 04:31:23

最后我解决了这个问题。导致此问题的原因是所选日期的单击时间太早。在整个页面完全加载之前,点击已经完成。这发生在应用程序部署后第一次命中页面之后。我的解决方案是在点击所选日期后添加一个Thread.Sleep。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54141858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档