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

Фотография

Selenium +Eclipse почему всё так медленно ?


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

#1 selevo

selevo

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

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

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

В selenium IDE почти мгновенно происходят процессы,а тут я вижу как курсор неспеша перемечается по меню сайта (вижу активацию полей по проходе над ними курсора) ,кликает ссылку ,пешком набирает текст,это вообще что за хрень такая ?Прикрепленный файл  ScreenShot661.jpg   21,75К   19 Количество загрузок:
вот этот простой тест выполнялся минуту.
в selenium webdriwer

в селениум иде 20-30 секунд

вот как код выглядит при экспорте

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("564733");
		driver.findElement(By.id("username")).clear();
		driver.findElement(By.id("username")).sendKeys("квакер");
		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("Общаемся только по телефону,");	
	}

	@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
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"

#2 Dzmitry_by

Dzmitry_by

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:- - -

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

http://www.izh.ru/en/access/login
проверил на этой странице ваш логин и пароль со скриншота. Не подходит. Может быть поэтому так долго выполняются?....
  • 0

#3 selevo

selevo

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

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

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

да я специально поменял и домен и пароль
сервер дома у меня,время доступа минимально.
яж пишу не про загрузку странички,а про то как вижу как происходит работа на самой страничке в замедленном действии в Selenium Webdriver+eclipse
Ну там сайт, форум обычный phpbb3

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

#4 selevo

selevo

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

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

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

вот такая скорость "набора текста"

Это нормально ?
есть ли аналог команды sendkeys ?
команда id=message type'текст сообщения' просто вставляла текст и всё,я хочу её!!!
я состарюсь,быстрее завершения всех тестов если так они быстро будут проходить
  • 0
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"

#5 selevo

selevo

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

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

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

Решился вопрос со скоростью,летает.
куету 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
Действительность,собой определяй.
(с)из лучших на свете книг "Звенящие кедры России"


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

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