java - 无法使用 selenium webdriver 在撰写电子邮件页面上的“收件人”(电子邮件 ID)字段中发送 key

标签 java selenium selenium-webdriver iframe webdriver

To”按钮无法从 selenium webdriver 获取 key 。在输出中它显示无法找到元素。 “To”位于 iframe 中,我使用了 I 框架,但它也不起作用。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class mail {
    public static void main(String[] args) throws InterruptedException  {

        System.setProperty("webdriver.gecko.driver", "D:\mozilla   driver\geckodriver.exe");
        WebDriver driver=new FirefoxDriver();
        driver.get("https://www.mail.com/int/");
        driver.findElement(By.xpath(".//*[@id='login-button']")).click();
        driver.findElement(By.xpath(".//*[@id='login-email']")).sendKeys("rahulrahulxyz@mail.com");
        driver.findElement(By.xpath(".//*[@id='login-password']")).sendKeys("incredible");
        driver.findElement(By.xpath(".//*[@id='login-form']/button")).click();

        driver.switchTo().frame("thirdPartyFrame_home");
        driver.findElement(By.linkText("Compose E-mail")).click();
        Thread.sleep(5000);

        driver.switchTo().frame("thirdPartyFrame_mail");     // **here is error**
        driver.findElement(By.xpath(".//*[@id='idbd']/div[2]/div[1]/div[1]/div[2]/div/div/ul/li/input")).sendKeys("abcde@mail.com");
    }
}

最佳答案

要通过 sendKeys() 方法发送 Emailid,您必须首先切换回 defaultContent,然后使用 WebDriverWait 再次切换到预期的 框架,最后诱导 WebDriverWait 使 To 字段可交互,然后发送 Emailid,如下所示:

  • 代码块:

    driver.switchTo().defaultContent();
    new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id("thirdPartyFrame_mail")));
    new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='compose-header_item compose-header_to mailobjectpanel-objectivation mailobjectpanel-textfield js-component mailobjectpanel']//div[@class='select2-container select2-container-multi js-select2']/ul/li/input"))).sendKeys("abcde@mail.com");
    
  • 快照:

Email-ID

关于java - 无法使用 selenium webdriver 在撰写电子邮件页面上的“收件人”(电子邮件 ID)字段中发送 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49648759/

相关文章:

java - 何时使用 "new"关键字 android API

javascript - 有没有办法在 JavaScript 中使用 Java SE jar?

java - 使用 Selenium WebDriver 在元素内查找时结果太多

python - 找不到满足 Selenium 要求的版本;在 Python3.6.5 上安装 Selenium 时找不到与 selenium 匹配的分布

java - JPA中表之间关系的问题

java - Spring 安全3.1 : How To Get Security To Kick In At An Alternative Entry Point

selenium - WebDriver 等待超时和隐式等待超时之间的区别?

python - 使用 ActionChains 在 Selenium Webdriver 中按 ctrl+t 不起作用

java - 如何使用 htmlunitdriver 抓取 selenium 中 JavaScript 内的 html 代码?

selenium-webdriver - Selenium Webdriver 拖放在 Chrome 中不起作用