我想知道是否可以使用C#和selenium驱动程序检查某个网页是否在默认浏览器中打开?我的想法是将某些票务系统的时间跟踪器与toggl连接起来。
例如,在点击票务系统中的“时间轨迹”按钮时,程序同时以编程方式单击toggl开始按钮。
发布于 2015-08-28 14:39:52
是的,有可能。
您可以设计一个检查默认窗口的URL或标题的解决方案。
if (driver.Url == 'http://some_url') { /* you are there */ }或
if (driver.Title == 'Some Title') { /* the window is open and currently there */ }现在,如果您使用自己的浏览器手动运行浏览器,那么请期待Selenium检测到这一点,我很抱歉,但这是不可能的。
发布于 2015-08-28 15:11:44
除了@sircapsalot回答:
这还不够,因为我们的目标是
点击售票系统中的“时间轨迹”按钮
首先,您应该确保页面已经加载,并且IWebElement是可点击的。在不进行某些高级使用(如页面状态的JS验证)的情况下,这应该可以很好地完成以下工作:
var wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(15));
var myElement = wait.Until(x => x.FindElement(By.Id("timeTrackBtnId")));
if(myElement.Displayed)
myElement.Click();那就去
程序以编程方式单击toggl开始按钮,同时
我不确定您将如何同步,以及page的JS事件将如何处理这个同时的操作,但您可以尝试使用System.Threading。如果页面是由您创建的,那么第二部分(单击按钮,单击togl)最好在JS代码中处理。
https://stackoverflow.com/questions/32273528
复制相似问题