Я пишу скрипт веб-драйвера селена. Сценарий скрипта:
1) Войти на www.yahoomail.com
2) Войти успешно.
3) Нажмите кнопку "Написать".
4) Введите идентификатор электронной почты в поле "Кому".
5) Введите тему в поле «Тема».
6) Введите текст сообщения в поле «Текст».
7) Нажмите кнопку «Отправить».
Используя Firepath, я взял xpath полей, упомянутых на странице «Создать». Но каждый раз, когда я открываю страницу Compose, эти xpaths динамически меняются.
Ниже приведен сценарий, который я использую:
WebDriver oYahoo = new FirefoxDriver();
oYahoo.get("http://www.yahoomail.com/");
oYahoo.manage().window().maximize();
oYahoo.findElement(By.xpath(".//*[@id='login-username']")).sendKeys("[email protected]");
oYahoo.findElement(By.xpath(".//*[@id='login-passwd']")).sendKeys("sfgas234@123");
oYahoo.findElement(By.xpath(".//*[@id='login-signin']")).click();
oYahoo.findElement(By.xpath(".//*[@id='Compose']/button")).click();
oYahoo.findElement(By.xpath(".//*[@id='yui_3_16_0_1_1448364357109_2222']")).sendKeys("[email protected]");
oYahoo.findElement(By.xpath(".//*[@id='subject-field']")).sendKeys("Hi This is my first automated mail");
oYahoo.findElement(By.xpath(".//*[@id='yui_3_16_0_1_1448364357109_1966']")).sendKeys("Hi This is my first automated mail");
oYahoo.findElement(By.xpath(".//*[@id='yui_3_16_0_1_1448364357109_2465']")).click();
oYahoo.quit();
Что мы можем сделать, чтобы он принимал Xpath динамически? Нужно ли нам отображать эти вещи в каком-то классе? мы должны написать какой-либо другой класс для всплывающего окна «Создать»? Если "Да", то как мы можем это сделать?