努力使用Selenium在<br>标记内查找文本

时间:2019-07-01 21:36:44

标签: c# selenium-webdriver

我们当前正在开发一个基于Web的应用程序,该应用程序向用户发送电子邮件以验证其帐户。我是Selenium和BDD的新手,到目前为止已经能够登录到基于Web的电子邮件帐户,并且可以打开特定的电子邮件。但是,用于激活我的帐户的URL不是超链接,因此我认为我可以提取包含URL的文本并使用Selenium作为链接打开它。

如果我查看来源,则以下是电子邮件的摘录:

<div id="messagebody">
   <div class="message-htmlpart" id="message-htmlpart1">
        <div class="rcmBody">
             <img style="width: 150px" src="https://link/" />
             <br />
             <br />
             Dear Name
             <br /><br />
             A new profile was created at http://... using this e-mail address.  Please click on the link below to validate that the user profile can be created:
             <br />
             <br />
             https://athandwe.link/activate_account?uakey=1X7AP43W74AYDV9HUJSTRTVK8LOLA24

             <br />
...

我已经尝试了几种修复方法,但是却无法获胜:

1.  string info = currentDriver.FindElement(By.XPath("//div[@class='rcmBody']/text()[following-sibling::br]")).Text;

2.  string info = currentDriver.FindElement(By.XPath("//*[contains(text() ,'athandwe')]")).Text;

3.  string info = currentDriver.FindElement(By.XPath("//div[@class='rcmBody']")).Text;

我希望结果是https://athandwe.link/activate_account?uakey=1X7AP43W74AYDV9HUJSTRTVK8LOLA24

尝试1和2给出错误消息-文本输出与元素预期错误

尝试3遍整封电子邮件

1 个答案:

答案 0 :(得分:1)

开发人员进行了更改,以创建标记,并且我的测试现在通过了。

建议词-当电子邮件中包含链接时,如果要在自动化测试中单击链接,请确保有一个锚标记来标识链接。