弹出窗口中的元素未找到

时间:2014-10-18 15:33:08

标签: java selenium selenium-chromedriver

我似乎无法在mediafire上找到登录掩码的元素。使用以下代码等待元素可见

public WebElement waitForElement(By identifier)
{
    return new WebDriverWait(driver, 10).until(ExpectedConditions
            .visibilityOfElementLocated(identifier));
}

即使元素在大约1秒后存在,也会超时。

我尝试使用By.xPath("//*[@id=\"widget_login_email\"]")By.cssSelector("#widget_login_email")找到电子邮件字段,但都没有用。

driver.getWindowHandles().size()返回1,因此没有其他窗口需要切换到。

这是html:

<form id="form_login1" method="post" action="/dynamic/client_login/mediafire.php" target="widgetwork"> <label class="ieLabel">Email address</label> <input type="email" pattern="^(.)+@[A-Za-z0-9]([A-Za-z0-9\.-]*[A-Za-z0-9])?\.[A-Za-z]{1,13}$" name="login_email" id="widget_login_email" placeholder="Email address"> <label class="ieLabel">Password</label> <input type="password" name="login_pass" id="widget_login_pass" placeholder="Password" maxlength="30"> <div id="login_remember_wrap"><input type="checkbox" name="login_remember" id="login_remember" checked="checked"><label for="login_remember">Keep me logged in</label></div> <a class="forgotPassword" href="/lost_password.php" target="_blank">Forgot password?</a> <button type="submit" class="gbtnTertiary" onclick="">Log in</button> </form>

请帮我用WebDriver找到这些元素。

注意: 我正在使用SeleniumChromeDriver

1 个答案:

答案 0 :(得分:0)

我认为问题是你得到的是NoSuchElementException

您遇到问题的原因是该元素包含在iframe中。具体来说,这一个:

<iframe name="modal_msg_iframe" id="modal_msg_iframe" src="/templates/login_signup/login_signup.php?dc=loginPath&amp;_svefr=2390" scrolling="no" frameborder="0" allowtransparency="true" style="width: 686px; height: 600px;"></iframe>

您需要切换到iframe才能访问该元素。

driver.switchTo().frame("modal_msg_iframe");
相关问题