我正在测试一个应用,点击链接"注册"后,会弹出注册覆盖。覆盖的DOM结构的片段如下。有几个iframe和一个表单。我需要在电子邮件字段中输入电子邮件。问题是,表单不在任何框架内,切换到iframe没有帮助。不切换也不起作用。
<iframe id="commons-frame"></iframe>
<iframe class="floodlight_iframe"></iframe>
<form>
<label for="email">
<input type="email" name="email" id="email" class="primary email text required" placeholder="Email Address">
</label>
</form>
如果我切换,则该元素不在该帧中的错误。如果我没有切换,则会出现一个错误,即元素不可见。
driver.switchTo().defaultContent();
WebElement frame = driver.findElement (By.id("commons-frame"));
driver.switchTo().frame(frame);
driver.findElement (By.xpath("//*[@class='primary email required']")).sendKeys ("abc@gmail.com");
driver.switchTo().defaultContent();
问题是:如何访问叠加层中的任何iframe之外的元素?