Bin*_*inu 1 java selenium xpath incoming-mail selenium-webdriver
我需要使用 Eclipse IDE 中的 java 使用 selenium webdriver 从 Gmail 收件箱打开邮件。有没有办法使用 xpath 做到这一点?
理想的方法是不使用 selenium 自动化 gmail,而是使用 Gmail API ( https://developers.google.com/gmail/api/#how_do_i_find_out_more ) 来验证邮件是否已成功发送。如果您不想学习如何在 API 级别检查邮件,我强烈建议您使用 HTML 版本的 gmail 使用此链接作为 gmail 的初始 url ( https://mail.google.com/mail/?ui =html ) 使用启用了 javascript 的 gmail 将使获得可靠的测试脚本变得更加困难。
这是我的解决方案,没有任何 thread.sleap() 等。
driver.get("https://mail.google.com/");
WebElement userElement = wait.until(ExpectedConditions.elementToBeClickable(By.id("identifierId")));
userElement.click();
userElement.clear();
userElement.sendKeys(properties.getProperty("username"));
WebElement identifierNext = wait.until(ExpectedConditions.elementToBeClickable(By.id("identifierNext")));
identifierNext.click();
WebElement passwordElement = wait.until(ExpectedConditions.elementToBeClickable(By.name("password")));
passwordElement.click();
passwordElement.clear();
passwordElement.sendKeys(properties.getProperty("password"));
WebElement passwordNext = wait.until(ExpectedConditions.elementToBeClickable(By.id("passwordNext")));
passwordNext.click();
WebElement composeElement = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@role='button' and (.)='Compose']")));
composeElement.click();
WebElement maximizeEmailElement = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//td//img[2]")));
maximizeEmailElement.click();
WebElement sendToElement = wait.until(ExpectedConditions.elementToBeClickable(By.name("to")));
sendToElement.click();
sendToElement.clear();
sendToElement.sendKeys(String.format("%s@gmail.com", properties.getProperty("username")));
WebElement subjectElement = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@name = 'subjectbox']")));
subjectElement.click();
subjectElement.clear();
subjectElement.sendKeys(properties.getProperty("email.subject"));
WebElement emailBodyElement = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@role = 'textbox']")));
emailBodyElement.click();
emailBodyElement.clear();
emailBodyElement.sendKeys(properties.getProperty("email.body"));
WebElement sendMailElement = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[text()='Send']")));
sendMailElement.click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[contains(text(),'Message sent')]")));
List<WebElement> inboxEmails = wait.until(ExpectedConditions.visibilityOfAllElements(driver.findElements(By.xpath("//*[@class='zA zE']"))));
for(WebElement email : inboxEmails){
if(email.isDisplayed() && email.getText().contains("email.subject")){
email.click();
WebElement label = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[contains(@title,'with label Inbox')]")));
WebElement subject = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h2[contains(text(),'Subject of this message')]")));
WebElement body = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(text(),'Single line body of this message')]")));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42160 次 |
| 最近记录: |