t.me/atinfo_chat Telegram группа по автоматизации тестирования

Ошибка в Eclipse при запуске теста


(freshment) #1

FF 10.0.2
selenium-server-standalone-2.20.0.jar
WAMP запущен, локально http://localhost/addressbook/ открывается без проблем

Eclipse открывает пустое окно FF, ошибка остается.

Что я делаю не так?


org.openqa.selenium.UnsupportedCommandException: Bad request

Command duration or timeout: 625 milliseconds
Build info: version: '2.20.0', revision: '16008', time: '2012-02-27 19:03:04'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_27'
Driver info: driver.version: FirefoxDriver
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:170)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:123)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:438)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:139)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:94)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:142)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:84)
    at com.example.tests.GroupCreationTests.setUp(GroupCreationTests.java:14)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

java.lang.NullPointerException
    at com.example.tests.GroupCreationTests.tearDown(GroupCreationTests.java:65)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:37)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
 


(Taras) #2

кинь код скрипта на которым летит


(Mykhailo Poliarush) #3

добавить пожалуйста код который ты запускаешь, так будет проще разобраться в чем проблема.


(viktor.gogulenko) #4

Была такая же проблема до обновления библиотек Selenium'a - открывалась пустая ФФ страница и все. Версия библиотек была 2.7.0. Обновился до 2.19 - все заработало. А с другими браузерами такая же проблема?


(Mykhailo Poliarush) #5

попробуйте версию 2.19, может быть это чисто проблема 2.20


(viktor.gogulenko) #6

Последние новости:

 

http://selenium.googlecode.com/svn/trunk/java/CHANGELOG подтверждает наше предположение:

v2.21.0 (In Progress)
=======

WebDriver:
* Significant stability improvements in firefoxdriver.

:)

Попробуйте пока 2.19, если не получится - будем думать дальше...


(freshment) #7

Спасибо за ответы и быструю поддержку!

Скачал selenium-server-standalone-2.19.0.jar переподцепил в свойствах проекта, но, к сожалению, результат такой же.

Залил проект: сюда

 

Код:

 

package com.example.tests;

import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;

public class GroupCreationTests {
    private WebDriver driver;
    private StringBuffer verificationErrors = new StringBuffer();
    @Before
    public void setUp() throws Exception {
        driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

    @Test
    public void testValidGroupCanBeCreated() throws Exception {
        openMainPage();
        goToGroupListPage();
        initGroupCreation();
        feelGroupForm("Тестовый заголовок", "Группа_1", "No comments");
        submitGroupCreation();
        returnToGroupPage();
        // ERROR: Caught exception [ERROR: Unsupported command [isTextPresent]]
    }

    private void returnToGroupPage() {
        driver.findElement(By.linkText("group page")).click();
    }

    private void submitGroupCreation() {
        driver.findElement(By.name("submit")).click();
    }

    private void feelGroupForm(String groupheader, String groupname, String comments) {
        type(groupname);
        driver.findElement(By.name("group_header")).clear();
        driver.findElement(By.name("group_header")).sendKeys(groupheader);
        driver.findElement(By.name("group_footer")).clear();
        driver.findElement(By.name("group_footer")).sendKeys(comments);
    }

    private void type(String groupname) {
        driver.findElement(By.name("group_name")).clear();
        driver.findElement(By.name("group_name")).sendKeys(groupname);
    }

    private void initGroupCreation() {
        driver.findElement(By.name("new")).click();
    }

    private void goToGroupListPage() {
        driver.findElement(By.linkText("groups")).click();
    }

    private void openMainPage() {
        driver.get("http://localhost/addressbook/");
    }

    @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;
        }
    }
}


(viktor.gogulenko) #8

Что-то я библиотек в проекте не увидел ;)

Добавил в либ-папку недостающие библиотеки - у меня вроде все запускается. ФФ открывает стартовую страницу, которая указана в тесте, а валится на ненахождении локатора, т.е. тест проходит по правильному курсу :) - у  вас должно работать. Залил сюда. Пишите, что получилось...


(Taras) #9

Может проэкт сам не правильно настроен ?


(viktor.gogulenko) #10

Вроде Page Objects нормально прописаны, а либы подключил - должно пойти...


(Kedanachi) #11

Исключение выпало при инициализации вебдрайвера. На запрос новой сессии драйвер вернул 400 Bad request.

Думаю автору необходимо зарепортить багу в http://code.google.com/p/selenium/issues/list


(freshment) #12

Спасибо!

Взял Ваш проект, переподцепил все библиотеки. Все так же ошибка в Eclipse. FF открывает пустое окно и все.


(viktor.gogulenko) #13

Взял Ваш проект, переподцепил все библиотеки.

Не могу понять зачем что-то переподцеплять - в проекте уже все необходимые библиотеки я прикрепил?! Вставьте мою папку-проект в свой Workspace Эклипса и добавьте его через File-->New-->Java Project. После добавления проекта (может просто ругаться, что уже имеется Ваш проект с таким же названием - переименуйте) запускаем Junit'ом тест и если действительно эпликейшн нормально запускается через локалхост - все должно пойти. Не нужно ничего "переподцеплять"! Попробуйте сначала мою конфигурацию библиотек.


(freshment) #14

Спасибо за поддержку!

Вопрос решил жестким гуглением, в итоге hosts привел к виду:

 

127.0.0.1       localhost
127.0.0.2 vmdev localhost.localdomain
 
Хотя строчка [127.0.0.1       localhost] уже была, но у меня до этого стоял Denwer и он чего только не переадресовал с 127.0.0.1