2017-08-01 63 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);