Как обработать кнопку создания Gmail?Я пытаюсь найти элемент по xpath, cssSelector ... и т.д., но не работает - PullRequest
1 голос
/ 10 июля 2019

Я просто хочу нажать кнопку «Создать» после входа в учетную запись 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();

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();
    }

СБОЙ: composeMail java.lang.NullPointerException

1 Ответ

1 голос
/ 11 июля 2019

Похоже, что с вашим xpath что-то не так, но рассмотрите это для большей продолжительности жизни: //*[contains(text(),"Compose")]

Что бы я сделал в вашей ситуации:

  1. Поставьте точку останова на строке driver.findElement и отладьте ваш скрипт. Когда выполнение останавливается в точке останова, посмотрите на окно chromedriver - вы видите кнопку Compose в DOM?
  2. Рассмотрим альтернативный маршрут - в Gmail есть горячие клавиши для действий; горячая клавиша для создания нового сообщения - c. Таким образом, вы можете попробовать метод sendKeys на другом элементе (например, //body).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...