【问题标题】:How to click unread email in gmail with specific subject say "First_name"如何在gmail中单击特定主题的未读电子邮件说“名字”
【发布时间】:2019-07-08 12:20:02
【问题描述】:

我想点击收件箱中主题为“Test”的未读邮件(新邮件)

此功能当前单击主题为“测试”的旧电子邮件。我想对主题为“Test”的未读电子邮件执行此功能

public static WebElement executeVerifyEmail(WebDriver driver) 
{

    try
    {
        GmailLogin.waitforVisible(driver, GmailLogin.Logo(driver));
        List<WebElement> emaillist=driver.findElements(By.xpath("//span[@class='bog']"));

        for(int i=0; i<emaillist.size(); i++){
            if(emaillist.get(i).getText().contains("TEST"))
            {
                emaillist.get(i).click();
                System.out.println("Email clicked");
                break;
            }
        }

    }catch(org.openqa.selenium.StaleElementReferenceException ex)
    {       
    ex.getMessage();        
    }
    return null;
}

【问题讨论】:

  • gmail 有一个 API...你应该使用它。
  • 显然您的 xpath 表达式 //span[@class='bog'] 没有找到您要单击的电子邮件。所以你需要适当地调整你的xpath。没有您的网页的 HTML,没有人可以帮助您。顺便说一句:想想你的异常处理(将消息打印到某些输出)、返回值(总是返回 null 是相当无用的)和方法声明(如果你不需要静态上下文,就不要使用)
  • 我在 gmail lnbox 中做这个操作,所以 HTML 很常见
  • 好的,那么任何 Gmail 用户都可以帮助您。我不使用 Gmail。

标签: java selenium selenium-webdriver


【解决方案1】:
  1. 您需要修改您的 XPath selector 以查看 child 跨度,例如:

    List<WebElement> emaillist=driver.findElements(By.xpath("//span[@class='bog']/span"));
    
  2. 您需要修改您的条件以检查font-weight 属性,对于已读的电子邮件,它将是400,对于未读的电子邮件,它将是700

    if (emaillist.get(i).getText().contains("TEST") && emaillist.get(i).getCssValue("font-weight").equals("700")) {
    

【讨论】:

  • 我试过你的代码它实际上并没有点击最近的未读电子邮件。
猜你喜欢
  • 2021-01-31
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-04
相关资源
最近更新 更多