我似乎无法在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找到这些元素。
注意: 我正在使用Selenium和ChromeDriver。
答案 0 :(得分:0)
我认为问题是你得到的是NoSuchElementException
。
您遇到问题的原因是该元素包含在iframe
中。具体来说,这一个:
<iframe name="modal_msg_iframe" id="modal_msg_iframe" src="/templates/login_signup/login_signup.php?dc=loginPath&_svefr=2390" scrolling="no" frameborder="0" allowtransparency="true" style="width: 686px; height: 600px;"></iframe>
您需要切换到iframe
才能访问该元素。
driver.switchTo().frame("modal_msg_iframe");