【问题标题】:WebDriver can not find the element with HotMail httpsWebDriver 找不到带有 HotMail https 的元素
【发布时间】:2013-02-09 06:15:32
【问题描述】:
我正在尝试使用 webdriver 2 自动发送邮件抛出 hotmail。
我正在使用带有 java 和 eclipse 的 WebDriver。
我目前通过登录成功进入hotmail,并且我得到了主邮件页面。
现在我必须点击“新建”按钮(图片编号 1),
当我通过命令单击它时: driver.findElement(By.id("NewMessage")).click();
它正在工作,页面移动到下一个撰写页面(图片编号 2)。
但WebDriver 认为他出于某种原因仍停留在前一页。
我无法单击此页面上的任何元素。
我的目标是将密钥发送到“收件人”字段,但我无法得到它。
正如您在图像编号 2 中看到的,我尝试通过“InputBox”类、id、className、xpath 等获取元素。
如果有人可以帮助我,我会很高兴..
谢谢,
或者。
【问题讨论】:
标签:
java
selenium
webdriver
selenium-webdriver
【解决方案1】:
问题是To 字段在iframe 中。在 selenium 中,如果您想在框架中执行任何操作,则意味着首先您必须进入框架。
进入框架的代码:
//Assume driver is initialized properly
driver.switchToFrame("Frame Name");
(或)
driver.switchTo.frame("FrameIndexValue");
(或)
WebElement element = driver.findElement(By.id(LocatorValue));
driver.switchTo.frame(element);
//Do any action inside the frame
在你完成框架内的动作后,你必须走出框架才能在框架外进行任何动作。
离开框架的代码:
//driver.switchTo.defaultContent();
如果您正在处理iframe,那么 defaultContent() 会将您带到所有 iframe 上方的主页,但如果您处理 frame,此方法会将您带到页面的第一帧.
更多info on frmae handling.