Перейти к содержимому

Фотография

Выбор локатора


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 9ik1993

9ik1993

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Евгений Муращенко

Отправлено 11 ноября 2014 - 17:44

Использую Selenium WebDriver.

На этой страничке http://www.onliner.by/#login есть форма для входа. Код полей ввода такой:
<input type="text" placeholder="Ник или e-mail" class="auth-box__input" data-field="login" data-autofocus="true" data-bind="value: $root.login.data.login,
                                                          css: {'is-error': $root.login.errors().login},
                                                          valueUpdate: 'input'">
<input type="password" placeholder="Пароль" class="auth-box__input" data-field="login" data-bind="value: $root.login.data.password,
                                                          css: {'is-error': $root.login.errors().password},
                                                          valueUpdate: 'input'">

Что здесь можно выбрать в качестве простого локатора? Или без XPath не обойтись?


  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 12 ноября 2014 - 07:40

input[type="text"]

input[type="password"]


  • 0

#3 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 12 ноября 2014 - 08:47

Уточню -- в предыдущем комментарии предложены CSS-селекторы. Но можно и XPath использовать, да.


  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#4 9ik1993

9ik1993

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Евгений Муращенко

Отправлено 12 ноября 2014 - 13:40

Уточню -- в предыдущем комментарии предложены CSS-селекторы. Но можно и XPath использовать, да.

Только ни вышеприведенный, ни xpath не захватывают поле
  • 0

#5 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 12 ноября 2014 - 14:14

WebDriver driver = new FirefoxDriver();
WebDriverWait wait = new WebDriverWait(driver, 10);

driver.get("http://www.onliner.by/");
driver.findElement(By.cssSelector(".auth-bar__item--text")).click();
WebElement loginForm = wait.until(
    ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#auth-container__forms")));

List<WebElement> inputs = loginForm.findElements(By.cssSelector("input"));

inputs.get(0).sendKeys("username");
inputs.get(1).sendKeys("password");
loginForm.findElement(By.cssSelector("button")).click();

  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#6 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 12 ноября 2014 - 14:17

Или, чтобы использовались вот именно те локаторы:
 
WebDriver driver = new FirefoxDriver();
WebDriverWait wait = new WebDriverWait(driver, 10);

driver.get("http://www.onliner.by/");
driver.findElement(By.cssSelector(".auth-bar__item--text")).click();
WebElement loginForm = wait.until(
    ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#auth-container__forms")));

loginForm.findElement(By.cssSelector("input[type='text']")).sendKeys("username");
loginForm.findElement(By.cssSelector("input[type='password']")).sendKeys("password");
loginForm.findElement(By.cssSelector("button")).click();

  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных