не удалось найти поле пароля в gmail. получаю ошибку «исключение webdriver» - PullRequest
0 голосов
/ 28 мая 2018
    import java.util.concurrent.TimeUnit;
    import org.testng.annotations.*;
    import static org.testng.Assert.*;
    import org.openqa.selenium.*;
    import org.openqa.selenium.chrome.ChromeDriver;

    public class Withtestng {
      private WebDriver driver;

      private boolean acceptNextAlert = true;
      private StringBuffer verificationErrors = new StringBuffer();

      @BeforeClass(alwaysRun = true)
      public void setUp() throws Exception {
         System.setProperty("webdriver.gecko.driver", "/usr/bin/geckodriver");
         System.setProperty("webdriver.chrome.driver", "/usr/bin/chromedriver");
        driver = new ChromeDriver();
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      }

      @Test
      public void testGmailLogInHtml() throws Exception {
        driver.get("https://www.google.com/");
        driver.findElement(By.linkText("Gmail")).click();
        driver.findElement(By.xpath("/html/body/nav/div/a[2]")).click();
        driver.findElement(By.id("identifierId")).click();
        driver.findElement(By.id("identifierId")).clear();
        driver.findElement(By.id("identifierId")).sendKeys("xyz@gmail.com");


 driver.findElement(By.xpath("//div[@id='identifierNext']/content")).click();

driver.findElement(By.xpath("//input[@class='whsOnd zHQkBf']")).click();
driver.findElement(By.xpath("//input[@class='whsOnd zHQkBf']")).clear();
driver.findElement(By.xpath("//input[@class='whsOndzHQkBf']")).sendKeys("xyz");***
            driver.findElement(By.xpath("//div[@id='passwordNext']/content/span"))click();
            driver.findElement(By.xpath("//div[@id='gb']/div/div/div[2]/div[5]/div/a/span")).click();
driver.findElement(By.id("gb_71")).click();
          }

1 Ответ

0 голосов
/ 10 марта 2019

Скорость выполнения вашего скрипта и время загрузки страницы не синхронизированы, попробуйте использовать pageLoadTimeout.

driver.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS);//

или

Вы можете подождать, пока конкретное условие станет истинным (т. Е. Подождать, покаэлемент присутствует с помощью wait.until), а затем выполните на нем операцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...