电子邮件中的 HTML 元素在其 ID 前面附加了奇怪的字符串?

HTML elements in an email have weird string prepended to their ID?

提问人:bmorgs 提问时间:9/30/2023 最后编辑:j08691bmorgs 更新时间:10/3/2023 访问量:31

问:

我有一项自动发送电子邮件报告的服务。我目前正在尝试进行一些自动化测试,以确保电子邮件中的数据正确无误。

我正在为电子邮件模板中的各种 HTML 元素分配一些唯一的 ID,然后在我的测试中使用 selenium 来抓取这些元素并抓取文本。

这是有效的,但无论出于何种原因,我分配的 ID 在开头都预先附加了一些奇怪的字符串。例如,我的模板中有一个元素,如下所示:

<td id="siteInfo" class="site-subtitle">

然后,一旦发送电子邮件,我发现的元素如下所示:

<td id="m_-6467880284962569820siteInfo" style="font-family:'Roboto',Arial,sans-serif;font-size:16px;font-weight:600">

这是怎麽?它预置了我在模板中分配了 ID 的每个元素的 ID。每个 ID 都是一样的,尽管每次我发送电子邮件时它都会发生变化。m_-6467880284962569820

我可以很容易地忽略 ID 的这一部分,但我很好奇它来自哪里?这是我正在测试的 gmail 帐户。

html 电子邮件 selenium-webdriver html-email

评论

0赞 AmeyaG 9/30/2023
这种看起来,ID是动态生成的。您将在许多应用程序上看到这一点。尝试检查抽搐的搜索字段,然后打开另一个选项卡并检查相同的内容。ID 会有所不同。
0赞 Syfer 11/13/2023
正如 Nathan 在下面回答的那样,所有类和 ID 都将动态地放在前面。这既存在于每个元素级别的代码中,也存在于样式中。如果您的电子邮件按预期工作,那么您不必担心。

答:

0赞 Nathan 10/3/2023 #1

Gmail 这样做是为了区分不同电子邮件和更宽泛页面的样式。否则,样式可能会交互/覆盖,因为它们不在 iframe 中,但代码会被带入一个页面。

您还会注意到标签已更改为 a 以及其他一些更改。<body><div>