2016-01-21 49 views
1

我有一個小問題,點擊子菜單中,其原因是,在一幀中的菜單標籤,並在其他子菜單,所以當我切換到其他幀子菜單是不可見的菜單和子菜單在不同的幀

我的代碼:

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

異常

意外錯誤。元素當前不可見,因此可能不是 與

互動

有沒有人有一個想法我該怎麼辦?

謝謝。

回答

0

我找到解決辦法,但它並不總是將工作 我只是重定向到點擊選項後到來的網址。

string urlAfterClick = "..." 

driver.Navigate().GoToUrl(urlAfterClick); 
0

嘗試使用明確的等待

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

其停止可見,當你切換到內容框架,因爲你需要留在僵局 –

+0

的缺點元素排序@LeonBarkan我添加了另一個解決方案 – Guy

+0

TNX,我會嘗試... –