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

Фотография

Как сделать так, чтобы кликнуть на ссылку в лаере?


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

#1 prostooleg1

prostooleg1

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • Город:Москва


Отправлено 26 октября 2011 - 07:11

На сайте mamba.ru справа в углу около ссылки "Помощь" есть иконка выбора языка, при нажатии всплывает выпадающий лаер, где необходимо щелкнуть на нужный язык.

@Test

public void LoginPageTestNg_test18() throws Exception {

wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
wd.findElement(By.cssSelector("ul.clearFix li.link-lang div.switch img")).click(); ///кликаем на саму иконку
wd.findElement(By.cssSelector("ul.clearFix li.link-lang ul li a[href='http://mamba.ru/?lang_id=3']")).click(); /// css-селектора выбора английского языка, по нему ужи кликнуть не может
}


При таком тесте на саму иконку кликает, лаер раскрывается, но английский язык уже не кликает. Пожскажите пожалуйста как реализуется в веб драйвере, чтобы он щелкал на элемент на лаере.
  • 0

#2 Demetri

Demetri

    Активный участник

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


Отправлено 26 октября 2011 - 08:09

Использование Actions должно помочь
http://code.google.c...serInteractions
  • 0
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#3 prostooleg1

prostooleg1

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • Город:Москва


Отправлено 27 октября 2011 - 08:54

Использование Actions должно помочь
http://code.google.c...serInteractions



Demetri спасибо вам снова за помощь, но что-то все равно не получается, не подскажите, где я туплю?

public void LoginPageTestNg_test19() throws Exception {


wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wd.get("http://www.mamba.ru/");
Actions builder = new Actions(wd);

WebElement menubar_more = wd.findElement(By.cssSelector("ul.clearFix li.link-lang div.switch img"));
WebElement menubar_evenmore = wd.findElement(By.cssSelector("ul.clearFix li.link-lang ul li a[href='http://mamba.ru/?lang_id=3']"));
builder.click(menubar_more).click(menubar_evenmore).perform();


}

Вроде бы ж все верно делаю :-(
  • 0

#4 Demetri

Demetri

    Активный участник

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


Отправлено 27 октября 2011 - 09:50

Просто надо быть чуточку внимательнее к локаторам :smile:
Вот такой тест работает:
WebDriver driver = new FirefoxDriver();
driver.get("http://www.mamba.ru/");
driver.findElement(By.xpath("//div[@id='BlockUserInfo']//li[@class='link-lang']//img")).click();
driver.findElement(By.xpath("//div[@id='BlockUserInfo']//li[@class='link-lang active']//a[contains(@href,'lang_id=3')]")).click();
driver.quit();
Вся проблема была в том, что кнопка, раскрывающая список языков, после клика меняла класс с "link-lang" на "link-lang active"
  • 0
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#5 prostooleg1

prostooleg1

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • Город:Москва


Отправлено 27 октября 2011 - 10:25

Просто надо быть чуточку внимательнее к локаторам :smile:
Вот такой тест работает:

WebDriver driver = new FirefoxDriver();
driver.get("http://www.mamba.ru/");
driver.findElement(By.xpath("//div[@id='BlockUserInfo']//li[@class='link-lang']//img")).click();
driver.findElement(By.xpath("//div[@id='BlockUserInfo']//li[@class='link-lang active']//a[contains(@href,'lang_id=3')]")).click();
driver.quit();
Вся проблема была в том, что кнопка, раскрывающая список языков, после клика меняла класс с "link-lang" на "link-lang active"



Demetri спасибо вам большое, действительно попробовал вашим вариантом и все норм, странно, если прописать мой цсс локатор ul.clearFix li.link-lang ul li a[href='http://mamba.ru/?lang_id=3'] то по Firefinder плагину в фаербаге он чего четко определяет на странице. То есть в данном варианте Actions не нужен, но можно интересно и через него реализовать, сейчас поэкпериментирую. Actions как я понимаю нужен в том случае если мы кликаем на элемент, удирживаем мышку, встаем в лаере на другой элемент выбираем его, как то так?
  • 0

#6 Demetri

Demetri

    Активный участник

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


Отправлено 27 октября 2011 - 10:52

...
странно, если прописать мой цсс локатор ul.clearFix li.link-lang ul li a[href='http://mamba.ru/?lang_id=3'] то по Firefinder плагину в фаербаге он чего четко определяет на странице
...

Ну, все правильно. До клика по флагу локатор соответствует элементу. А вот после клика - уже нет, класс-то изменился
  • 0
Hi! I'm a signature virus. Copy me into your signature to help me spread.


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

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