【发布时间】:2012-08-06 23:42:20
【问题描述】:
我正在尝试使用Selenium WebDriver 使用用户名和密码自动登录到站点。我已经完成了我的研究,我不相信 WebDriver 支持这个功能,所以我需要找到另一种方法。我尝试自动登录的站点位于here。
当提示登录时,会出现一个似乎不是浏览器一部分的弹出窗口。我正在使用 Firefox 和 Chrome。似乎可能需要 Windows API?我已经尝试在 URL 中传递凭据,但这不起作用。还尝试了 sendkeys,但收到了应用程序不接受 Windows 消息的 Windows 异常。我还尝试使用driver.windowhandles 切换当前的handle,但弹出窗口似乎不是新句柄。
有人有什么想法吗?我有点卡住了。进入弹出窗口的初步代码是:
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://www.portal.adp.com");
string currentWindow = driver.CurrentWindowHandle;
IWebElement userLogin = driver.FindElement(By.Id("employee"));
userLogin.Click();
【问题讨论】:
-
作为一个更新,我能够解决这个问题。以前我尝试过 sendkeys 但无法使其正常工作。我正在使用 Sendkeys.sendWait(),让函数在发送密钥之前等待,但它仍然没有效果。通过将 Thread.sleep(2000) 放在 Sendkeys.sendWait("text to put") 之前,它可以完美运行。不确定为什么需要 thread.sleep 语句,因为 sendwait 应该涵盖这一点,但它是需要的
-
另外我也试过WebDriverWait()函数,但也没有用
标签: c# selenium-webdriver