C# 不同框架中的菜单和子菜单
我在点击子菜单时有点问题,原因是一个框架中的菜单标签和另一个框架中的子菜单,所以当我切换到另一个框架时,子菜单是不可见的 我的代码:C# 不同框架中的菜单和子菜单,c#,selenium,iframe,C#,Selenium,Iframe,我在点击子菜单时有点问题,原因是一个框架中的菜单标签和另一个框架中的子菜单,所以当我切换到另一个框架时,子菜单是不可见的 我的代码: driver.SwitchTo().DefaultContent().SwitchTo().Frame("top"); Actions actions = new Actions(driver); IWebElement menuHoverLink = driver.FindElement(By.PartialLinkText("Cons")); actions
driver.SwitchTo().DefaultContent().SwitchTo().Frame("top");
Actions actions = new Actions(driver);
IWebElement menuHoverLink = driver.FindElement(By.PartialLinkText("Cons"));
actions.MoveToElement(menuHoverLink);
actions.Build().Perform();
driver.SwitchTo().DefaultContent().SwitchTo().Frame("content").FindElement(By.Id("elem3")).Click();
例外情况
意外错误。元素当前不可见,因此可能不可见
相互作用
有人知道在这种情况下我能做什么吗
谢谢。尝试使用显式等待
driver.SwitchTo().Frame("content");
WebDriverWaitwait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("elem3"))).Click();
或者使用发送键
actions.MoveToElement(menuHoverLink).Build().Perform();
menuHoverLink.SendKeys(OpenQA.Selenium.Keys.ArrowDown);
menuHoverLink.SendKeys(OpenQA.Selenium.Keys.Enter);
尝试使用显式等待
driver.SwitchTo().Frame("content");
WebDriverWaitwait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("elem3"))).Click();
或者使用发送键
actions.MoveToElement(menuHoverLink).Build().Perform();
menuHoverLink.SendKeys(OpenQA.Selenium.Keys.ArrowDown);
menuHoverLink.SendKeys(OpenQA.Selenium.Keys.Enter);
我找到了解决办法,但并不总是有效的 我只是重定向到单击该选项后出现的url
string urlAfterClick = "..."
driver.Navigate().GoToUrl(urlAfterClick);
我找到了解决办法,但并不总是有效的 我只是重定向到单击该选项后出现的url
string urlAfterClick = "..."
driver.Navigate().GoToUrl(urlAfterClick);
当您切换到内容框时,它就不再可见,因为您需要停留在Cons元素上deadlock@LeonBarkan我添加了另一个解决方案,当您切换到内容框架时,它不再可见,因为您需要停留在Cons元素上deadlock@LeonBarkan我添加了另一个解决方案