【问题标题】:Selenium loop through emails in MailinatorSelenium 循环通过 Mailinator 中的电子邮件
【发布时间】:2021-07-19 11:47:36
【问题描述】:

您好 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 的电子邮件并打开它们。

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

非常感谢你们

编辑: 这是以全屏模式运行浏览器的 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')

【问题讨论】:

  • 我试图理解,但仍然不确定我明白了。您正在向 Mailinator 中的 2 个电子邮件地址发送包含一些内容(我猜是字符串)的电子邮件。您不想打开那两封电子邮件中的一封并查看是否收到了那封电子邮件吗?因为我看不到同时在多个收件箱中查看电子邮件的方法。您可以输入特定的电子邮件收件箱,然后搜索其中包含已知内容的电子邮件。是这样吗?如果是这样 - 问题是什么?

标签: python-3.x selenium selenium-webdriver


【解决方案1】:

您可以在 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

【讨论】:

  • 您好,伙计,感谢您的时间和回复。所以我尝试使用for,但似乎python/selenium 忽略了该语句并直接跳转到下一行代码,抛出一个错误,指出element not intractable
  • 所以我从find_elements 更改为find_element,因为我的收件箱中只有一封电子邮件。但我收到错误 unable to locate element 让我认为这与您之前帮助我使用 iframe 解决的问题相同
  • 这个网页元素的视口是什么?确保以全屏模式启动浏览器。
  • 这是我的视口<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"> 我正在尝试全屏启动浏览器,但它只显示半屏。我将使用网络驱动程序配置更新我的帖子
  • 可以加driver.maximize_window()这一行来最大化窗口大小
猜你喜欢
  • 2015-12-07
  • 1970-01-01
  • 2013-12-23
  • 2022-08-14
  • 2018-10-27
  • 2012-08-09
  • 2017-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多