当前位置: 首页 > 知识库问答 >
问题:

如何使用Java在Selenium2(Webdriver)中键入Gmail正文文本

缪征
2023-03-14

我试图从Gmail自动发送电子邮件(https://accounts.google.com/ServiceLogin?service=mail

驾驶员findElement(By.xpath(“//textarea[@name='body']”)。sendKeys(“正文”);

错误为:失败:testSendingEmail组织。openqa。硒。ElementNotVisibleException:元素当前不可见,因此可能无法与命令持续时间或超时进行交互:30.02秒

谁能帮帮我吗?

共有3个答案

陆高峰
2023-03-14

下面是一段用于键入gmail正文的超文本标记语言代码

<iframe frameborder="0" style="padding: 0pt; height: 218px; background-color: white;" class="Am Al editable" id=":4z" tabindex="1"></iframe>

我已经在WebDriver中编写了以下java代码来键入gmail body,它工作得很好。(我很高兴)

WebDriver driver = new FirefoxDriver();
WebElement frame1 = driver.findElement(By.xpath("//iframe[@class='Am Al editable']"));
driver.switchTo().frame(frame1);
WebElement editable = driver.switchTo().activeElement();
String mailBody = "Hi," + '\n' + "I'm Ripon from Dhaka, Bangladesh.";
editable.sendKeys(mailBody);
driver.switchTo().defaultContent();
东弘扬
2023-03-14

当使用类时,它抛出错误元素,但发现使用表索引更好。

        WebElement frame1 = driver.findElement(By.xpath("//iframe[@tabindex='1']"));
    driver.switchTo().frame(frame1);
    WebElement editable = driver.switchTo().activeElement();
    String mailBody = "Hi," + '\n' + "Gmail Body";
    editable.sendKeys(mailBody);
    driver.switchTo().defaultContent();
丁宏浚
2023-03-14

你不能用Selenium IDE记录邮件正文。

在项目中包括以下方法,并调用该方法发送电子邮件。(无需登录gmail)

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public void SendEmail()
{

  // Recipient's email ID needs to be mentioned.
  String to = "abcd@gmail.com";

  // Sender's email ID needs to be mentioned
  String from = "web@gmail.com";

  // Assuming you are sending email from localhost
  String host = "localhost";

  // Get system properties
  Properties properties = System.getProperties();

  // Setup mail server
  properties.setProperty("mail.smtp.host", host);

  // Get the default Session object.
  Session session = Session.getDefaultInstance(properties);

  try{
     // Create a default MimeMessage object.
     MimeMessage message = new MimeMessage(session);

     // Set From: header field of the header.
     message.setFrom(new InternetAddress(from));

     // Set To: header field of the header.
     message.addRecipient(Message.RecipientType.TO,
                              new InternetAddress(to));

     // Set Subject: header field
     message.setSubject("This is the Subject Line!");

     // Now set the actual message
     message.setText("This is actual message");

     // Send message
     Transport.send(message);
     //System.out.println("Sent message successfully....");
  }
catch (MessagingException mex) {
     mex.printStackTrace();
  }
}

您也可以发送带有附件的邮件

有关更多信息,请参阅此链接。

 类似资料:
  • 问题内容: 我将WebDriver和Java一起用于自动化测试。对于隐藏的输入字段,我有以下HTML代码: 如何在Selenium2(WebDriver)的隐藏字段中键入内容?我写的代码为: 但是它显示了以下错误:org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与命令持续时间或超时进行交互:30.04秒 有人可以帮我在隐藏字

  • 我有一个HTML元素. 加载页面后,我可以使用从该元素获取文本。 但随后我点击这个元素并更改里面的文本(例如,改为“已编辑”)。DOM中没有任何变化,包括属性 的值(即仍然返回“initial”,并且DOM中的元素看起来像) 如何提取现在在浏览器中可见的值(即字符串“已编辑”)?我需要执行一些JavaScript或其他东西吗?

  • 问题内容: 谁能让我知道如何使用Java代码使用Selenium上传文件? 当我单击应用程序中的按钮时,它将在新窗口中打开,可以用来选择上传文件。Silverlight(C#)开发的浏览按钮。 问题答案: 首先确保输入元素可见 正如Mark Collin在此处的讨论中所述: 不要单击浏览按钮,它会触发操作系统级别的对话框并有效地停止测试。 相反,你可以使用: myUploadElement是该元素

  • 谁能让我知道如何通过Java代码使用Selenium上传文件? 当我点击应用程序中的按钮时,它会在新窗口中打开,我可以用它来选择上传文件。Silverlight(C#)开发的浏览按钮。

  • 我正在设计Selenium WebDriver框架工作中的测试,我想在登录框中的字段中插入文本。 这里是一个网站www.fitandjump-widzew.pl点击右上角的“zaloguj”按钮后,出现登录框。我想在电子邮件输入字段中插入文本。 下面是我的代码: 在执行之后,我得到这个错误:org.openqa.selenium.ElementNotVisibleException:元素不可见 有

  • 问题内容: 我正在尝试使用Selenium WebDriver获取文本,这是我的代码。请注意,我不想使用XPath,因为在我的情况下,每次重新启动网页时ID都会更改。 我的代码: HTML: 我怎样才能解决这个问题? 问题答案: 你只想。 然后,您可以在验证 后 进行验证,不要尝试传递您 期望的 内容。