【发布时间】:2016-12-30 00:40:30
【问题描述】:
我对 Selenium 和 Visual Studio 很陌生。我创建了一个测试用例来简单地登录到网页并检查已登录页面上的元素。登录很好,我进入下一页但是我无法通过任何方法在下一页上找到任何元素,例如作为 XPath、ID 或名称。我收到以下类型的错误...
OpenQA.Selenium.NoSuchElementException : no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='lblApplicationVersion']"}
我还添加了一些不同的等待,例如...
new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until(ExpectedConditions.ElementExists((By.XPath("//*[@id='lblApplicationVersion']"))));
...但这只是等待整个持续时间,即使页面确实已加载。
chrome中的html元素如下...
<html>
<head>...</head>
<frameset border="0" framespacing="0" rows="100,89%" frameborder="0">
<frame name="ob_frm_header" src="header.aspx" noresize="noresize" scrolling="no">
#document
<!DOCTYPE html>
<html>
<head>...</head>
<body>
<form method="post" action="./header.aspx" id="Form1">
<div class="aspNetHidden">...</div>
<script type="text/javascript">
...
</script>
<script type="text/javascript">
...
</script>
<script type="text/javascript">
...
</script>
<div id="header">
<div id="header_left">
<a id="OEMLogoLink" href="https://observatory.spikescavell.net/" target="_parent">...</a>
<div id="application_version" class="statuspanel_application_version">
<span id="lblApplicationVersion">v4.3.4</span>
</div>
</div>
<div id="MainMenu1" onresize="MainMenuControls.MainMenuStrip.prototype.sizeChanged($get('MainMenu1'));" style="overflow: hidden; width: 1644px;" menuname="Observatory_Main" submenuleftoffset="201" submenuframe="ob_frm_main" submenuid="SubMenu1">
</div>
<div id="statuspanel">...</div>
</div>
</form>
</body>
</html>
</frame>
<frameset id="frmset_ob_menu_main" cols="201,81%" border="0" framespacing="0" frameborder="0">
<noframes>...</noframes>
</frameset>
</html>
【问题讨论】:
-
通常情况下,我想我一发布就找到了答案!看起来我需要先将驱动程序切换到框架,即... driver.SwitchTo().Frame(frame name);
-
是的,这就是问题所在,frame是单独的html文档
标签: c# selenium visual-studio-2012 xpath