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

Фотография

Selenium +Eclipse


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

#1 selevo

selevo

    Постоянный участник

  • Members
  • PipPipPip
  • 156 сообщений
  • ФИО:Сергей

Отправлено 26 июля 2012 - 09:32

1)
Как создать отдельный jar файл исполняемый ?

2)
Я пробовал написать тест без использования браузера,то есть HtmlUnit driver вместо Firefox driver
И что-то не получается он запускает IE движок и там видимо как-то иначе работает или отображается нечто.
Как переключить что бы HtmlUnit использовал движок FireFox причём в системе он не установлен по умолчанию,portable стоит.

3)
Как запустить пошаговую отладку,чтобы было видна какая строчка в данный момент выполняется ?

4,5)
Где взять вообще список команд этих тупых, типа установки пути к FireFox
и как я должен догадывается где это искать и какую команду использовать ?
-

чудовищна система
  • 0
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"

#2 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 26 июля 2012 - 11:45

1. Открываете Эклипс, подключаете к нему Селениум (можно внешним файлом, можно внутренним, я делаю внешним), проверяете работоспособность кода. Должен быть основной класс (main): public static void main(String[] args). Далее Файл - Экспорт, выбираем Java - Runnable Jar file, жмём Далее; в Ланч Конфигурэйшн выбираем свой main класс, выбираем куда сохранить и способ, как упаковывать или не упаковывать Селениум (я выбираю последний пункт всегда)
2. хз
3. Я использую брэйк поинты (мне пошагово не надо) - 2 раза кликаю мышкой на кусок фрейма (или как это правильно назвать) перед кодом, появляется кружлчек, дальше, на панели инструментов жму на жучка (запустить отладку) и потом для каждого шага жму "далее"
4. Каждый раз ищу в нете

надеюсь ответ помог
  • 1

#3 selevo

selevo

    Постоянный участник

  • Members
  • PipPipPip
  • 156 сообщений
  • ФИО:Сергей

Отправлено 26 июля 2012 - 12:59

благодарю,попробую сохранить
но надо сначала тест чтобы работал
у меня fireFoax в другую папку установлен и я не пойму где эту куету прописываеть,путь тобишь к FireFox
вот она плата за бесплатное.
  • 0
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"

#4 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 26 июля 2012 - 14:14

2)
Я пробовал написать тест без использования браузера,то есть HtmlUnit driver вместо Firefox driver
И что-то не получается он запускает IE движок и там видимо как-то иначе работает или отображается нечто.
Как переключить что бы HtmlUnit использовал движок FireFox причём в системе он не установлен по умолчанию,portable стоит.


Вообще HtmlUnit-у не важно есть у вас FF или нет. У него свой механизм эмуляции браузеров.

А как использовать какой-то другой движок, читаем джавадоки: http://htmlunit.sour.../WebClient.html
  • 0
Алексей Булат
Про Тестинг

#5 selevo

selevo

    Постоянный участник

  • Members
  • PipPipPip
  • 156 сообщений
  • ФИО:Сергей

Отправлено 26 июля 2012 - 14:42

Да надо заняться изучением.

После долгих психов я решил поставить FireFox 3.6 в папку C:\Program Files\Mozilla Firefox\
И тест пошёл ,причём установка FireFox 14 в E:\Program Files\Mozilla Firefox\ и кликание в eclipse галки что браузер по-умолчанию используем ничего не дало,в общем пшёл он нах...

Возникла проблема.
у меня при экспорте из Selenium IDE в junit4 webdriver все type заменились на sendKeys и теперь у меня текст минуту набирается в поле воода,там примерно 1000 символов.
Я так счастлив...
  • 0
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"

#6 selevo

selevo

    Постоянный участник

  • Members
  • PipPipPip
  • 156 сообщений
  • ФИО:Сергей

Отправлено 26 июля 2012 - 16:27

1. Открываете Эклипс, подключаете к нему Селениум (можно внешним файлом, можно внутренним, я делаю внешним), проверяете работоспособность кода. Должен быть основной класс (main): public static void main(String[] args). Далее Файл - Экспорт, выбираем Java - Runnable Jar file, жмём Далее; в Ланч Конфигурэйшн выбираем свой main класс, выбираем куда сохранить и способ, как упаковывать или не упаковывать Селениум (я выбираю последний пункт всегда)


помогите разобраться
куда деть этот класс майн в моём коде,везде ошибку выдаёт ))
замучался со скобками

package com.example.tests;

import java.io.File;
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class Selentest1 {

	private WebDriver driver;
	private String baseUrl;
	private StringBuffer verificationErrors = new StringBuffer();
	@Before
	
	
	public void setUp() throws Exception {
		driver = new FirefoxDriver();
			driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
		}
	
	@Test
	public void testSelentest1() throws Exception {
		driver.get("http://izhbazar.ru");
		driver.findElement(By.cssSelector("a[title=\"Вход\"]")).click();
		driver.findElement(By.id("password")).clear();
		driver.findElement(By.id("password")).sendKeys("3534");
		driver.findElement(By.id("username")).clear();
		driver.findElement(By.id("username")).sendKeys("rtghr");
		driver.findElement(By.name("login")).click();
		driver.findElement(By.cssSelector("dt[title=\"Нет непрочитанных сообщений\"] > a.forumtitle")).click();
		driver.findElement(By.cssSelector("div.post-icon > a > span")).click();
		driver.findElement(By.id("subject")).clear();
		driver.findElement(By.id("subject")).sendKeys("селенийм  тест");
		driver.findElement(By.id("message")).clear();
		driver.findElement(By.id("message")).sendKeys("тест 123");	
	}

	@After
	public void tearDown() throws Exception {
		driver.quit();
		String verificationErrorString = verificationErrors.toString();
		if (!"".equals(verificationErrorString)) {
			fail(verificationErrorString);
		}
	}

	private boolean isElementPresent(By by) {
		try {
			driver.findElement(by);
			return true;
		} catch (NoSuchElementException e) {
			return false;
		}
	}
}



  • 0
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"

#7 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 26 июля 2012 - 19:33

сюда никак не получится вставить мэйн класс, т.к. это Жюнит и его нужно компилить немного по-другому. Предлараю решить, если этот код рабочий и всё устраивает, то нужно воспользоваться
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class MyTestRunner {
	public static void main(String[] args) {
		Result result = JUnitCore.runClasses(MyClassTest.class);
		for (Failure failure : result.getFailures()) {
			System.out.println(failure.toString());
		}
	}
}
источник: http://www.vogella.c...it/article.html
где MyClassTest.class - название скомпилиного класса Жюнита (Эклипс автоматически компилирует, по умолчанию).
Т.е. нужно сначала запустить этот код, чтобы он отработал (чтобы знать, что всё ОК, не обязательный шаг), а потом вместо MyClassTest.class указать что-то типа Selentest1.class, а потом при компиляции выбрать MyClassTest.class

Предупрежу: некоторые говорят, что так делать фу-фу как плохо, но у меня всё работает, поэтому я не очень вдумывался почему плохо
  • 0

#8 selevo

selevo

    Постоянный участник

  • Members
  • PipPipPip
  • 156 сообщений
  • ФИО:Сергей

Отправлено 26 июля 2012 - 20:11

ничего не понятно но попробую разобраться
намешали говна-то намешали,нах нужен этот junit tесли selenium модуль импортированый сам является ядром и всё это можно без югнитов сделать только на яве+селениум,как на си+селениум.
Я наверно что-то не понимаю....
  • 0
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"

#9 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 27 июля 2012 - 07:04

ничего не понятно но попробую разобраться
намешали говна-то намешали,нах нужен этот junit tесли selenium модуль импортированый сам является ядром и всё это можно без югнитов сделать только на яве+селениум,как на си+селениум.
Я наверно что-то не понимаю....

ну, сначала был ИДЕ (плагин к ФФ) и фреймворк, основанный на Жюните, потом год назад или 2 сделали ВебДрайвер. Не удалять же Жюнит из поддержки, это же несерьёзно
  • 0

#10 selevo

selevo

    Постоянный участник

  • Members
  • PipPipPip
  • 156 сообщений
  • ФИО:Сергей

Отправлено 27 июля 2012 - 09:18

да ,я понимаю..
просто у меня буря эмоций от того, что я многое не понимаю )))

вот этот код,вставлять в мою программу или отдельно как класс или пакет
до меня не доходит.
  • 0
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"

#11 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 27 июля 2012 - 11:04

да ,я понимаю..
просто у меня буря эмоций от того, что я многое не понимаю )))

вот этот код,вставлять в мою программу или отдельно как класс или пакет
до меня не доходит.

отдельно, как новый класс

а вообще, если у вас есть свободное время и деньги - запишитесь на курсы
  • 0

#12 selevo

selevo

    Постоянный участник

  • Members
  • PipPipPip
  • 156 сообщений
  • ФИО:Сергей

Отправлено 27 июля 2012 - 11:44

попробую
нету у меня ни денег ни времени
я раз в год автоматизацией, в течении месяца занимаюсь,смысла не имеет,записываться.
  • 0
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"

#13 selevo

selevo

    Постоянный участник

  • Members
  • PipPipPip
  • 156 сообщений
  • ФИО:Сергей

Отправлено 27 июля 2012 - 12:46

Решился ещё один вопрос,со скоростью.
куету sendKeys можно заменить на другой метод,а именно;

после публикования класса ,в моём случае ,после строки:
public class Selentest1 {

Добавляем следующие строчки;
private void setValue(WebElement element, String value) {
        ((JavascriptExecutor)driver).executeScript("arguments[0].value = arguments[1]", element, value);
Далее вместо строчки ввода сообщения в форму;
driver.findElement(By.id("message")).sendKeys("тут полтонны текста");
пишем:
WebElement inputField = driver.findElement(By.id("message"));
    setValue(inputField, "тут полтонны текста");
подглядел тут:
  • 0
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"

#14 selevo

selevo

    Постоянный участник

  • Members
  • PipPipPip
  • 156 сообщений
  • ФИО:Сергей

Отправлено 28 июля 2012 - 05:25

попробовал создать новый класс\пакет
и столкнулся с тем что имя же надо присвоить.
Имя какое-то определённое нужно ?
  • 0
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"


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

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