java - WebDriver + TestNG Gmail 一个奇怪的错误

标签 java selenium xpath gmail

我尝试自动从 Gmail 发送电子邮件并使用 TestNG 和页面对象模式,浏览器 FireFox,但首先是代码的一部分 =)

我正在查看带有帮助注释(页面对象模式)的定位器,然后转到我在测试中使用的函数。

@FindBy (how=How.XPATH, using = "//div[@class='T-I J-J5-Ji T-I-KE L3']")
public WebElement writeMail;

@FindBy (how=How.XPATH, using = "//textarea[@class='vO']")
public WebElement adressTo;

@FindBy (how=How.XPATH, using = "//input[@class='aoT']")
public WebElement subjectOfMail;

@FindBy (how=How.XPATH, using = "//body[@role='textbox']")
public WebElement contentMail;

@FindBy (how=How.XPATH, using = "//div[@class='T-I J-J5-Ji aoO T-I-atl L3']")
public WebElement sendMail;

public void writeMail(String adress, String subject) {
    writeMail.click();
    adressTo.sendKeys(adress);
    subjectOfMail.sendKeys(subject);
    webDriver.switchTo().frame(webDriver.findElement(
            By.xpath("//iframe[contains(@tabindex,'1') and contains(@frameborder,'0')]"))); 
    webDriver.findElement(By.xpath("//body[@role='textbox']")).sendKeys("Test");
    webDriver.switchTo().defaultContent();
    sendMail.click();
}

据称必须工作,但记录只出现在地址和主题字段中,测试失败后记录在日志中:

"无法定位元素:{"method":"xpath","selector":"//body[@role='textbox']"}"

但是如果我评论

//adressTo.sendKeys(adress);
//subjectOfMail.sendKeys(subject);

webdriver 按计划切换到 iframe 并在信函正文中写入文本并单击“发送”按钮。

请向我解释一下,为什么这段代码作为一个简单的 Java 应用程序运行良好,但在我的示例中的测试 (TestNG) 中使用它时却无法正常运行?

最佳答案

嗯,问题的解决方案在这里找到了How to type Gmail Body text in Selenium2 (Webdriver) using Java ,但我想知道为什么旧的 hpath 工作起来如此奇怪。感谢大家的关注。

关于java - WebDriver + TestNG Gmail 一个奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22130540/

相关文章:

java - 使用 POST 的 REST API 显示空白响应

java - 如何使用java修剪xml标签和值之间的空格

java - 在 Android 应用程序中命名包的正确技术是什么?

xpath:在文本后选择标签

java - 使用 Jackson 进行 boolean 和数组数据绑定(bind)

excel - Selenium Webdriver (VBA) - 查找元素的属性,其中有相同名称的重复属性

java - 面临异常 : org. openqa.selenium.NoSuchSessionException : A session is either terminated or not started site:stackoverflow. com

java - 当有两个或三个单选按钮时如何使用 Selenium 选择单选按钮

SQL Server - 仅使用 .modify() 合并两个 XML

java - 如何避免使用 xpath 在节点之间返回空格和行返回?