我想在selenium 2中使用C#查找标签,但我无法访问带有id或xpath等的div标签。这是我的代码:
driver.FindElement(By.Id("captcha"));
并且网络来源是:
<body id="mainBody">
<div class="top_bar" style="min-height:210px">
<div class="m_sidebar_view">
<div id="captcha" style="position: relative; float: right; margin: 6px 35px 0 0; overflow: auto;"><div/>
</div>
</div>
</body>
答案 0 :(得分:1)
Captcha通常在iframe
内加载(例如,参见google recaptcha demo源代码)。在搜索验证码元素之前切换到它:
driver.SwitchTo().Frame("frame_name_or_id");
答案 1 :(得分:0)
虽然目前还不清楚你的问题是什么,但最流行的错误之一并不是等待这个因素。所以试试to wait:
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement myDynamicElement = wait.Until<IWebElement>((d) =>
{
return d.FindElement(By.Id("captcha"));
});