如何在Selenium 2 WebDriver中选择div id?

时间:2015-12-27 23:39:00

标签: c# html selenium xpath webdriver

我想在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>

2 个答案:

答案 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"));
});