Я пытаюсь попрактиковаться в использовании Selenium, выполнив простую операцию по созданию пользовательского объекта в Salesforce Lightning. Мой код прекрасно работает в Classic, но как только я переключаюсь на Lightning, он почему-то работает только до определенного момента.
Что работает:
driver.get("http://login.salesforce.com");
driver.manage().window().maximize();
driver.findElement(By.xpath("//input[@id='username']")).sendKeys("<USERNAME>");
driver.findElement(By.xpath("//input[@id='password']")).sendKeys("<PASSWORD>");
driver.findElement(By.xpath("//input[@class='button r4 wide primary']")).click();
driver.findElement(By.xpath("//*[@id=\"oneHeader\"]/div[3]/div/div[2]/div/div/ul[2]/li[3]/div")).click();
driver.findElement(By.xpath("//*[@id=\"oneHeader\"]/div[3]/div/div[2]/div/div/ul[2]/li[3]/div/div[2]")).click();
Так что я могу войти в систему и получить доступ к странице создания объекта просто отлично. Проблема в следующем бите кода, который должен быть самым простым:
driver.findElement(By.xpath("//input[@id='MasterLabel']")).sendKeys("Address");
driver.findElement(By.xpath("//input[@id='MasterLabel']")).sendKeys("Addresses");
driver.findElement(By.xpath("//input[@value=' Save ']")).click();```
Я получаю сообщение об ошибке:
Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//input[@id='MasterLabel']"}
То, что я пробовал:
- Поиск полей ввода по имени и идентификатору вместо xpath. Те же результаты
- Попытка реализации явного ожидания. Не похоже, что это имеет значение
- Попытка сделать метод driver.switchTo (). Frame (), но Webdriver не может обнаружить iFrame на странице.
Любая помощь будет принята с благодарностью! Спасибо