C#Selenium WebDriver - 是否可以检查浏览器中是否已打开某个网页?

时间:2015-08-28 14:35:06

标签: c# selenium browser automation webdriver

我想知道如果在默认浏览器中打开某个网页,是否可以使用C#和selenium web驱动程序进行检查? 我的想法是将某些票务系统的时间跟踪器与toggl链接起来。

例如 - 点击" Time Track"在售票系统中的按钮,程序同时以编程方式单击切换开始按钮。

2 个答案:

答案 0 :(得分:1)

是的,这是可能的。

您可以设计一个检查默认窗口的URL或标题的解决方案。

if (driver.Url == 'http://some_url') { /* you are there */ }

if (driver.Title == 'Some Title') { /* the window is open and currently there */ }

现在,如果您使用自己的浏览器手动运行浏览器,那么期望Selenium检测那个,那么我很抱歉,但 是不可能的。

答案 1 :(得分:1)

除了@sircapsalot回答:

由于目标是

,这还不够
  

点击" Time Track"售票系统中的按钮

首先,您应该确保已加载页面并且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开始按钮

我不确定您将如何同步以及页面的JS事件将如何处理此同步操作,但您可以尝试使用System.Threading。如果页面是由您创建的,那么第二部分(单击按钮,单击togl)最好在JS代码中处理。