Selenium webdriver 如何处理gmail撰写按钮?I';我正试图通过xpath、cssSelector。。。等等,但不起作用

Selenium webdriver 如何处理gmail撰写按钮?I';我正试图通过xpath、cssSelector。。。等等,但不起作用,selenium-webdriver,Selenium Webdriver,我只想在登录gmail帐户后点击“撰写”按钮。 当我试图通过xpath(静态、动态和自定义方式)查找元素时,cssSelector。它将无法找到元素我不知道为什么? 有谁能建议我如何面对这个挑战吗 //driver.findElement(By.xpath("//*[@id=\":f3\"]/div/div")).click(); //driver.findElement(By.xpath("/html/body/div[7]/div[3]/div/div[2]/div[1]/div[1]/di

我只想在登录gmail帐户后点击“撰写”按钮。 当我试图通过xpath(静态、动态和自定义方式)查找元素时,cssSelector。它将无法找到元素我不知道为什么? 有谁能建议我如何面对这个挑战吗

//driver.findElement(By.xpath("//*[@id=\":f3\"]/div/div")).click();
//driver.findElement(By.xpath("/html/body/div[7]/div[3]/div/div[2]/div[1]/div[1]/div[1]/div/div/div/div[1]/div/div")).click();    
//driver.findElement(By.xpath("//div[@class='T-I J-J5-Ji T-I-KE L3']")).click();

失败:composeMail
“java”。Null PoExtExtExt[/P>< p>您的XPath似乎没有任何错误,但考虑到这一点,以更好地使用寿命:<代码> /** [包含(文本()),“撰写”)< /COD> < /P> 在你的情况下我会做的事情:

  • driver.findElement
    行上放置断点并调试脚本。当执行在断点处停止时,请查看chromedriver窗口——您是否看到DOM中的Compose按钮
  • 考虑另一种途径——Gmail有操作热键;撰写新邮件的热键是
    c
    。因此,您可以在不同的元素(如
    //body
    )上尝试使用
    sendKeys
    方法
  • public class ComposeMail  extends GmailTest{
    
        WebDriver driver;
        public void getLogin()
        {
            GmailTest gm=new GmailTest();
            gm.setUp();
            gm.gmailLogin();
    
            driver.manage().timeouts().pageLoadTimeout(40,TimeUnit.SECONDS);
            driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
            driver.findElement(By.xpath("//div[@class='T-I J-J5-Ji T-I-KE L3']")).click();
        }