微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Selenium 循环遍历 Mailinator 中的电子邮件

如何解决Selenium 循环遍历 Mailinator 中的电子邮件

你好 Selenium (python) 专家。 我在 Mailinator 中有 2 封电子邮件,我在其中发送了一些电子邮件模板。 我将这些电子邮件按如下方式调用,以便于解释我的问题:

  • email1@mailinator.com
  • email2@mailinator.com

我正在向两封电子邮件发送完全相同的内容,我正在尝试使用 selenium 定位电子邮件并将其打开。

现在使用 selenium,我使用 XPATH 来定位电子邮件,但我意识到这个 XPATH 是一个动态链接,这意味着对于我发送的每封电子邮件,Mailinator 都会生成一个随机数附加到电子邮件 XPATH。例如:

email1 = //*[@id="row_email1-1626692999-529929"]/td[2]
email2 = //*[@id="row_email2-1628652999-526029"]/td[2]

我想知道是否有一个选项可以循环遍历 Mailinator 的正文并定位包含 XPATH email1email2 的所有电子邮件并打开它们。

我是硒的新手,所以如果有什么不清楚或需要更多信息,请告诉我

非常感谢你们

编辑: 这是在全屏模式下运行浏览器的 Web 驱动程序配置,但它以小尺寸启动

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--start-maximized')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(PATH,chrome_options=chrome_options)
wait = webdriverwait(driver,10)
driver.get('https://mailinator.com')

解决方法

您可以在 xpath 中使用 OR,如下所示:

//*[@id='row_email1-1626692999-529929' or @id='row_email2-1628652999-526029']/td[2]

或者更好的方法是使用 find_elements

为此,我假设以下 xpath :

//*[contains(@id,'row_email')]/td[2]

将代表所有电子邮件链接。

示例代码:

for emails in driver.find_elements(By.XPATH,"//*[contains(@id,'row_email)']/td[2]")
    emails.click() or whatever you wanna do here with single mail link

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?