我试图从Gmail自动发送电子邮件(https://accounts.google.com/ServiceLogin?service=mail
驾驶员findElement(By.xpath(“//textarea[@name='body']”)。sendKeys(“正文”);
错误为:失败:testSendingEmail组织。openqa。硒。ElementNotVisibleException:元素当前不可见,因此可能无法与命令持续时间或超时进行交互:30.02秒
谁能帮帮我吗?
下面是一段用于键入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();
当使用类时,它抛出错误元素,但发现使用表索引更好。
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();
你不能用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: 我怎样才能解决这个问题? 问题答案: 你只想。 然后,您可以在验证 后 进行验证,不要尝试传递您 期望的 内容。