2017-08-01 50 views
0

Sample code無法使用Selenium C#

選擇元素,我無法找到元素或者與XPath,CssSelector,類名,等等......爲突出顯示的文本(這是一個按鈕)。有以下代碼:

driverChrome.SwitchTo().DefaultContent(); 
driverChrome.SwitchTo().Frame(0); 
IWebElement optionsGear = driverChrome.FindElement(By.CssSelector("html body div#app.d2l-typography div#root-wrapper div.main-wrapper div.root div.main div.navigation-container div.nav-header div.options-header div.overall-options-container div.options-dropdown button.button.overall-options")); 
optionsGear.Click(); 

任何建議或意見?

+0

難道這不是頁面中唯一的iframe嗎?嘗試通過id而不是索引來切換它。 – user1242967

+0

我試過IWebElement leftPane = driverChrome.FindElement(By.XPath(「// html // body // iframe」)); driverChrome.SwitchTo()。Frame(leftPane);但得到相同的結果。然而,我可以正確地在瀏覽器控制檯執行代碼:document.getElementsByClassName(「overall-options」)[0] .click() –

+0

所以......如果你嘗試'driverChrome.SwitchTo() 「iFrameResizer0」);'? – user1242967

回答

1

發現放入隱式等待可解決問題:driverChrome.Manage()。Timeouts()。ImplicitWait = TimeSpan.FromSeconds(10);