无法使用selenium webdriver单击电子邮件模板的链接按钮

时间:2017-09-29 15:17:53

标签: selenium selenium-webdriver

有没有办法使用selenium webdriver识别驻留在电子邮件正文模板中的链接?

我试图自动化一个场景,我会收到一封电子邮件,其中有一个链接点击以完成注册过程。

使用公共邮件服务器,我可以使用Selenium登录基于Web的电子邮件提供商。我点击了收到的电子邮件但是网络驱动程序无法使用电子邮件正文模板中附带的ID webelement定位器来识别链接。执行后我最终得到以下错误:

  

org.openqa.selenium.NoSuchElementException:no such element:找不到元素:{“method”:“id”,“selector”:“enrollmentURL”}

电子邮件链接的HTML:

<a id="enrollmentURL" href="click1.clickrouter.com/…; style="font-family: &quot;arial&quot; , &quot;helvetica&quot; , sans-serif ; font-size: 16px ; line-height: 16px ; color: #fff ; text-decoration: none ; display: block" target="_other" rel="nofollow"><strong>GET&nbsp;STARTED</strong></a>

代码:

Generic.waitForElement(malinatoremailid,1,driver); 
Generic.click(malinatoremailid,driver); 
Generic.enterText(malinatoremailid,map.get(0).get("Email"),d‌​river); 
Generic.click(go,driver); Generic.waitForElement(email,2,driver); 
Generic.click(email,driver);

1 个答案:

答案 0 :(得分:1)

我能够查看来自mailinator https://www.mailinator.com/v2/inbox.jsp?zone=public&query=HeadyPie#/#msgpane

的一封示例电子邮件

如果你在html中进一步查看,你会看到电子邮件正文包含在iframe下面。因此,点击电子邮件后,您首先必须切换到该iframe,然后再点击链接:

// Click on the email

// Now switch to the email body iframe:
driver.switchTo().frame("msg_body");

// Click on the email link 

// If you need to go back to the menu, don't forget to switch back:
driver.switchTo().defaultContent();