2016-05-15 97 views
1

我找的元素ID爲 「lastdays_day」 爲:硒WebDriver.FindElements(By.CssSelector( 「*」))找不到元素,C#

var elements = WebDriver.FindElements(By.Id("lastdays_day")); 

但elements.Count爲0

即使是:

WebDriver.FindElements(By.CssSelector("*")) 

不能列出這個元素

我已經頁面加載後卜嘗試了Thread.Sleep(5000) t不起作用。 我試圖

Driver.SwitchTo().DefaultContent 

Driver.SwitchTo().Frame(0) 

,但不起作用。

任何想法?

structure of the page

+1

您必須先找到iFrame。看看http://stackoverflow.com/questions/24247490/find-elements-inside-forms-and-iframe-using-java-and-selenium-webdriver –

+0

我正在嘗試,但我有困難找到正確的框架。看來Selenium甚至沒有看到幀。 –

回答

1

Driver.SwitchTo().DefaultContent;是切換從框架

Driver.SwitchTo().Frame(0);不會工作,要麼因爲在html索引從1

Driver.SwitchTo()罐開始接收ID /名稱作爲參數,所以切換命令應該像

Driver.SwitchTo().Frame("ombframe"); // switch to first frame 
Driver.SwitchTo().Frame("MainFrame"); // switch to second frame 

作爲邊注,該元素的ID是lastdays_days's',而不是lastdays_day。它也將只返回一個元素,因爲ID是唯一的,因此您可以使用WebDriver.FindElement

IWebElement element = WebDriver.FindElement(By.Id("lastdays_days")); 
+0

當我使用 Driver.SwitchTo()。Frame(「MainFrame」); 我最終得到:'OpenQA.Selenium.NoSuchFrameException'類型的例外 附加信息:找不到具有名稱或ID的幀元素MainFrame –

+1

@ mojmir.novak嘗試切換到父幀第一個Driver.SwitchTo( ).Frame(「ombframe」);',然後到該元素的框架。 – Guy

+0

終於,它的工作原理:-) 請問,有什麼辦法如何確定在頁面中的幀列表/或在父框架中的孩子? –