【问题标题】:Menu and SubMenu in different frames不同框架中的菜单和子菜单
【发布时间】:2016-01-21 10:25:35
【问题描述】:

我点击子菜单有点问题,原因是一帧的菜单标签和另一帧的子菜单,所以当我切换到其他帧时,子菜单是不可见的

我的代码:

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();

例外

意外错误。元素当前不可见,因此可能不可见 互动

有没有人知道在这种情况下我该怎么办?

谢谢。

【问题讨论】:

    标签: c# selenium iframe


    【解决方案1】:

    尝试使用显式等待

    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);
    

    【讨论】:

    • 当您切换到内容框架时,它不再可见,因为您需要停留在 Cons 元素类型的死锁上
    • @LeonBarkan 我添加了另一个解决方案
    【解决方案2】:

    我找到了解决方案,但它并不总是有效 我只是重定向到点击选项后出现的网址。

    string urlAfterClick = "..."
    
    driver.Navigate().GoToUrl(urlAfterClick);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-06
      • 2023-01-23
      • 1970-01-01
      • 2019-03-22
      • 2022-11-18
      • 2017-07-30
      • 1970-01-01
      • 2019-04-08
      相关资源
      最近更新 更多