Как управлять окном внутри веб-страницы с помощью selenium C#?
Привет Я использую код selenium c# для управления веб-страницей. Мне удалось открыть веб-страницу в firefox, войти на веб-страницу и открыть дочернее окно на этой веб-странице.
Но я не могу контролировать дочернее окно внутри этой веб-страницы.
Я пытался использовать
PopupWindowFinderкод:
finder = new PopupWindowFinder(driver,timeout,sleepInterval); try { popUpWindow = finder.Click(driver.FindElement(By.XPath("//li[@class='quicklink icHumanResources']"))); } catch (WebDriverException) { System.Threading.Thread.Sleep(10); } driver.SwitchTo().Window(popUpWindow);
Но это не работает.
Что я уже пробовал:
driver = new FirefoxDriver(); driver.Navigate().GoToUrl("https://WEB-ADDRESS/"); IWebElement userName = driver.FindElement(By.XPath("//input[@class='LoginIputField focus']")); IWebElement password = driver.FindElement(By.Id("Engine_LoginScreen_txtPassword")); IWebElement loginButton = driver.FindElement(By.Id("Engine_LoginScreen_btnSubmit")); userName.SendKeys("XXXXXXXXXXXX"); password.SendKeys("XXXXXXXXXXXXXXXXXXXXX"); loginButton.Click(); System.Threading.Thread.Sleep(20000); ITakesScreenshot ssdriver = driver as ITakesScreenshot; Screenshot screenshot = ssdriver.GetScreenshot(); string timestamp = DateTime.Now.ToString("yyyy-MM-dd-hhmmss"); screenshot.SaveAsFile("D:\\SLIKA" + @"\Exception-"+timestamp+".png", System.Drawing.Imaging.ImageFormat.Png); string currentHandle = driver.CurrentWindowHandle; System.Threading.Thread.Sleep(20000); TimeSpan timeout = new TimeSpan(0, 1, 0); TimeSpan sleepInterval = new TimeSpan(0, 1, 0); finder = new PopupWindowFinder(driver,timeout,sleepInterval); try { popUpWindow = finder.Click(driver.FindElement(By.XPath("//li[@class='quicklink icHumanResources']"))); } catch (WebDriverException) { System.Threading.Thread.Sleep(10); } driver.SwitchTo().Window(popUpWindow);
Andira Muttakim
Вы пробовали водителя?SwitchTo ().Фрейм (ваш фрейм)?
А какую версию Selenium и Firefox вы используете?