- Форум тестировщиков
- → Просмотр профиля: Сообщения: Alekssaf
Статистика
- Группа: Members
- Сообщений: 20
- Просмотров: 1 987
- Статус: Новый участник
- Возраст: Неизвестен
- День рождения: Неизвестен
-
ФИО
Сафронов Алексей
-
Пол
Не указал
0
Обычный
Инструменты
Друзья
Alekssaf еще не добавил друзей
Мои сообщения
В теме: Работа с RemoteWebDriver
16 июля 2012 - 07:42
Похоже разобрался сам. Не запустил ноды java -jar selenium-server-standalone-2.14.0.jar -role node -hub http://localhost:4444/grid/register.
В теме: PageObject + PageFactory
29 июня 2012 - 10:36
А должно, что здесь не так?1. у вас тут ошибку не выдает? :)
SubMenu subMenu = PageFactory.initElements(driver, subMenu.class);
2. если правильно понял, вы не знаете как бы вам сделать так, чтобы LoggDefinition создавался через PageFactory в классе SubMenu. Вот вам решение - метод loggDefinition должен возвращать
public LoggDefinition getLoggDefinitionPage() { return PageFactory.initElements(driver, LoggDefinition.class); }
Спасибо большое.
3. почитайте про "Code Conventions for the Java Programming Language" - вам это пригодится, т.к. читать ваш код сложно...
тут конечно согласен
А вот это уже жестоко4. почитайте по JAVA в принципе, с нуля - вам это тоже пригодится
Еще раз спасибо.
В теме: Помогите сделать красиво
27 июня 2012 - 09:07
Спасибо, похоже он правда работает только с WebDriver.1. Читаем что написано про PageFactory:
Так уж получилось, что я не работаю с Селеном 2.х (поэтому лишь предполагаю в чем проблема), но могу предложить попробовать сделать один в один как написано в примерах: создавайт не FirefoxDriver, а WebDriver. Так же гляньте примеры по PageObject паттерну, а именно как объявляется driver в объекте страницы:we rely on the PageFactory to instantiate the instance of the PageObject. It does this by first looking for a constructor that takes "WebDriver" as its sole argument (public SomePage(WebDriver driver) {). If this is not present, then the default constructor is called. Sometimes, however, the PageObject depends on more than just an instance of the WebDriver interface.
2. Лично я использую другой подход - вместо одного метода clickButton, написал бы два: clickLogoutButton() и clickLoginButton() - без параметров.public void clickLogoutButton(){ logoutMenu.click(); } public void clickLoginButton(){ logginMenu.click(); }
А по второму пункту у меня вопрос, конечно же такой подход как у Вас избавить меня от проблемы передачи WebElement из теста, но тогда получается, что придется отказаться от универсальности методов и, если элементов на странице много, то получается либо уж очень много методов для каждого из элементов, либо дробить саму страницу на несколько классов , каждый из которых под определенные группы тестов? Может я что неправильно понимаю, кто , вообще, какой метод использует, поделитесь , пожалуйста.
Спасибо.
В теме: Помогите сделать красиво
27 июня 2012 - 07:20
Спасибо.Если используете аннотации, то как скажите, так и будет искать. Из примера:
@FindBy(how = How.NAME, using = "q") private WebElement searchBox;
Вот как-то так все и работает.
Но у меня остались еще два вопроса, помогите, пожалуйста.
Итак у меня есть класс страницы что-то типа
public class MainMenu {
@FindBy(xpath="//div[@id='id_MainMenu']//span[text()='logoutMenu']")
public WebElement logoutMenu;
@FindBy(how = How.XPATH, using = "//div[@id='id_MainMenu']//span[text()='logginMenu']")
public WebElement logginMenu;
public FirefoxDriver driver;
public MainMenu(FirefoxDriver driver) {
this.driver=driver;
}
public void clickButton (WebElement button){
button.click();
}
И класс с тестом JUnit
@Test
public void testMainmenu() throws Exception {
MainMenu mainmenu = PageFactory.initElements(driver, MainMenu.class);
// main menu
mainmenu.clickButton(mainmenu.logginMenu);
А теперь вопросы
1) Почему если в классе страницы есть конструктор, то ничего не работает, если конструктор убрать , то кнопки нажимаются, но как мне тогда передать туда driver?
2) mainmenu.clickButton(mainmenu.logginMenu); - mainmenu.logginMenu - Это нормальный стиль передачи параметра страницы из теста?
Спасибо.
В теме: Помогите сделать красиво
26 июня 2012 - 12:46
P.S. А может кто-нить подскажет где в инете почитать про Page factory? Спасибо.
http://code.google.c...iki/PageFactory
Скажите, пожалуйста, а я что -то неправильно или единственный существенный плюс это
If you use the PageFactory, you can assume that the fields are initialised. If you don't use the PageFactory, then NullPointerExceptions will be thrown if you make the assumption that the fields are already initialised.
но при этом еще и поиск элементов идет только по ID и Value? Спасибо.
- Форум тестировщиков
- → Просмотр профиля: Сообщения: Alekssaf
- Политика Конфиденциальности
- Правила форума ·