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