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

Фотография

Как при запуске Selenium RC в браузере отключать использование JavaScr


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

#1 Jolly

Jolly

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Олег
  • Город:Днепропетровск

Отправлено 03 декабря 2008 - 14:36

Есть страничка содержащая визуальный редактор который невидит селениум , если в браузере отключить использование JavaScript то в место этого визуального редактора появляется текстовое поле. Как сделать чтобы при запуске Selenium RC а в браузере автоматически отключалась возможность использовать JavaScript.
  • 0

#2 NLord

NLord

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

  • Members
  • PipPip
  • 108 сообщений

Отправлено 03 декабря 2008 - 15:49

Есть страничка содержащая визуальный редактор который невидит селениум , если в браузере отключить использование JavaScript то в место этого визуального редактора появляется текстовое поле. Как сделать чтобы при запуске Selenium RC а в браузере автоматически отключалась возможность использовать JavaScript.


Попробуйте всё же достучаться до поля редактора с использование Джаваскрипта и Селениума, например для релактора TinyMCE запись в его поле может выглядеть так:

String js = "document.getElementById('" + iframeID + "').contentWindow.document.getElementById('someID').innerHTML ='" + theText + "';";
selenium.runScript(js);
  • 0

#3 Jolly

Jolly

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Олег
  • Город:Днепропетровск

Отправлено 03 декабря 2008 - 16:11

это уже хоть чтото , а где я могу об этом почитать ? был бы очень благодарен за ссылку
  • 0

#4 Jolly

Jolly

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Олег
  • Город:Днепропетровск

Отправлено 03 декабря 2008 - 16:24

хм задание изменилось нужно не просто обойти визуальный редактор, а покрыть тестами
  • 0

#5 Jolly

Jolly

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Олег
  • Город:Днепропетровск

Отправлено 04 декабря 2008 - 07:37

Старнно, неужели никому неприходилось тестить визуальный редактор с помощью селениума
  • 0

#6 NLord

NLord

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

  • Members
  • PipPip
  • 108 сообщений

Отправлено 04 декабря 2008 - 07:57

Старнно, неужели никому неприходилось тестить визуальный редактор с помощью селениума

Этой ночью похоже никому :).

это уже хоть чтото , а где я могу об этом почитать ? был бы очень благодарен за ссылку


1. Гляньте ФаерБагом какая у Вашего редактора структура в ХТМЛ-е страницы. Я сталкивался с тем, что такие редакторы "живут" в собственном iframe, соответственно, чтобы получить доступ(записать/прочитать) к их содержимому использовался Джаваскрипт наподобие того что приводился выше.

2. Почитать наверное вот это:
runScript() и getEval()
Scripting Iframes - Tutorial and Examples

З.Ы.
Возможно если Вы дадите ссылку на страничку с этим редактором или покажете кусок кода страницы с ним будет чуть проще сказать, как именно Вам стоит делать.
  • 0
"Меня терзают смутные сомненья..." что это работает.

#7 Jolly

Jolly

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Олег
  • Город:Днепропетровск

Отправлено 04 декабря 2008 - 08:19

спасиба за ссылки
редактор TinyMCE
  • 0

#8 NLord

NLord

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

  • Members
  • PipPip
  • 108 сообщений

Отправлено 04 декабря 2008 - 09:05

спасиба за ссылки
редактор TinyMCE


В дополнение - пообщайтесь с разработчиком(и), можно же вызывать методы из API TinyMCE.

Одно из решений "в лоб" такое:

public void addTextInToTinyMCEField(String iframeID, String theText) {
		String js = "document.getElementById('" + iframeID + "').contentWindow.document.getElementById('tinymce').innerHTML ='" + theText + "';";
		selenium.runScript(js);

	}

	public String getTextFromTinyMCEField(String iframeID) {
		String js = "window.document.getElementById('" + iframeID + "').contentWindow.document.getElementById('tinymce').innerHTML;";
		return selenium.getEval(js);

	}
iframeID - ID iframe-а TinyMCE
'tinymce' - у нас на страницах именно такой айдишник внутреннего body, у Вас может чуть быть другим, гляньте.
  • 0

#9 ezha

ezha

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Зоя

Отправлено 04 декабря 2008 - 09:09

А еще можно использовать для этого что-нить более легкое вместо селениума - например, какой-нить jwebunit - ему не критичен включенный js. То есть для него использование js можно отключить вообще. С одной стороны это более идеологически правильно, а с другой стороны, он вместо нормального браузера запускает свой собственный эмулятор, что может и не устроить. Но зато тесты будут не в пример шустрее селениумовских.
А отключить в селениуме js нельзя, он же сам javascript :)
  • 0
Завтра. Будет.

#10 Jolly

Jolly

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Олег
  • Город:Днепропетровск

Отправлено 04 декабря 2008 - 09:47

А еще можно использовать для этого что-нить более легкое вместо селениума - например, какой-нить jwebunit - ему не критичен включенный js. То есть для него использование js можно отключить вообще. С одной стороны это более идеологически правильно, а с другой стороны, он вместо нормального браузера запускает свой собственный эмулятор, что может и не устроить. Но зато тесты будут не в пример шустрее селениумовских.
А отключить в селениуме js нельзя, он же сам javascript :)

я отключаю руками в браузере Java Script и все нормально , но проблема в том если я использую test suite то при запуске очередного скрипта нужно заново лезть в браузер и отключать. Вот я и хотел спросить как можн автоматом отключать.
  • 0

#11 Jolly

Jolly

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Олег
  • Город:Днепропетровск

Отправлено 04 декабря 2008 - 09:50

В дополнение - пообщайтесь с разработчиком(и), можно же вызывать методы из API TinyMCE.

Одно из решений "в лоб" такое:

public void addTextInToTinyMCEField(String iframeID, String theText) {
		String js = "document.getElementById('" + iframeID + "').contentWindow.document.getElementById('tinymce').innerHTML ='" + theText + "';";
		selenium.runScript(js);

	}

	public String getTextFromTinyMCEField(String iframeID) {
		String js = "window.document.getElementById('" + iframeID + "').contentWindow.document.getElementById('tinymce').innerHTML;";
		return selenium.getEval(js);

	}
iframeID - ID iframe-а TinyMCE
'tinymce' - у нас на страницах именно такой айдишник внутреннего body, у Вас может чуть быть другим, гляньте.

проблема в том что я незнаю Java Script , я использую python для написания скриптов. Может это можно както на питоне сделать
  • 0

#12 Jolly

Jolly

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Олег
  • Город:Днепропетровск

Отправлено 04 декабря 2008 - 10:08

Впринцыпе можно накликать скрипт с помощью IDE a потом экспортировать в Java. Подскажите какой должен быть формтат и как его потом запустить в Selenium RC
  • 0

#13 NLord

NLord

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

  • Members
  • PipPip
  • 108 сообщений

Отправлено 04 декабря 2008 - 10:12

проблема в том что я незнаю Java Script , я использую python для написания скриптов. Может это можно както на питоне сделать

Гм, собственно особого знания Джаваскрипта тут не требуется, подставьте свои айдишники в то, что писалось выше.
Ну а уж аналог джававского selenium.runScript() в Питоне есть, думаю :). Или таки покажите куски кода страницы.
  • 0
"Меня терзают смутные сомненья..." что это работает.

#14 Jolly

Jolly

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Олег
  • Город:Днепропетровск

Отправлено 04 декабря 2008 - 10:45

Вот я записал в IDE и импортировал в джаву
package com.example.tests;

import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;

public class NewTest extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("http://testsite.com/", "*chrome");
}
public void testNew() throws Exception {
selenium.open("/");
selenium.click("link=Log in");
selenium.waitForPageToLoad("30000");
selenium.type("form-username", "test@gmail.com");
selenium.type("form-password", "password1");
selenium.click("form-submit");
selenium.waitForPageToLoad("30000");
selenium.click("link=My Blog");
selenium.waitForPageToLoad("30000");
selenium.click("link=Add Blog Post");
selenium.waitForPageToLoad("30000");
selenium.type("form.title", "test");
#здесь должен быть ввод текста
selenium.type("form.tags", "tags");
selenium.click("form.actions.save");
selenium.waitForPageToLoad("30000");
}
}
что здесь мне надо подправить ? и как запустить?
  • 0

#15 NLord

NLord

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

  • Members
  • PipPip
  • 108 сообщений

Отправлено 04 декабря 2008 - 12:36

Вот я записал в IDE и импортировал в джаву
package com.example.tests;
...

что здесь мне надо подправить ? и как запустить?


Вы меня смущаете этим вопросом :). А как Вы запускали тесты до этого? Только из-под IDE?

Подробную инструкцию не дам, поищите по форуму ветки в духе "Как начать". Вкратце: оставьте джавовскую IDE (IntelljIdea или Eclipse), создайте там проект, подключите библиотеки (JUnit, Selenium java driver), создайте класс с тем кодом, что Вы привели,
замените
#здесь должен быть ввод текста
на
String js = "document.getElementById('iframeID').contentWindow.document.getElementById('tinymce').innerHTML ='theText';";
		selenium.runScript(js);
iframeID и tinymce естественно должны быть Вашими айдишниками. Для запуска скачайте Selenium -RC server (и сервер и клиент.драйвер скачиваются вместе), почитайте какой командой стартовать сервер и запустите его. После этого - правая кнопка на имени тестового метода в Вашей среде разработки и ищите Run.

Запускать можно и через Ant/Maven.

З.Ы.
Повторюсь - если рядом есть разработчики, то смело берите ближайшего за горло и просите помочь. Пиво с вареньем если что потом ему поставите :).
  • 0
"Меня терзают смутные сомненья..." что это работает.

#16 Jolly

Jolly

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Олег
  • Город:Днепропетровск

Отправлено 04 декабря 2008 - 14:38

огромное человеческое спасиба
С питоновскими тестами у меня проблем небыло просто в консольке запускаю селениум сервер в другой консольке например ...\test.py вот и все
  • 0

#17 NLord

NLord

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

  • Members
  • PipPip
  • 108 сообщений

Отправлено 04 декабря 2008 - 15:00

огромное человеческое спасиба
С питоновскими тестами у меня проблем небыло просто в консольке запускаю селениум сервер в другой консольке например ...\test.py вот и все


Всё же я Вас не совсем понял, если уже есть тесты на Питоне - преобразуйте "String js = "document.getElementById('iframeID').contentWindow.document.getElementById('tinymce').innerHTML ='theText';"; selenium.runScript(js);" в запись на Питоне, вставляйте в Ваши тесты и получайте удовольствие. Я, к сожалению, с синтаксисом Питона незнаком, так что прямо с ходу не преобразую.
  • 0
"Меня терзают смутные сомненья..." что это работает.

#18 hg_04

hg_04

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

  • Members
  • Pip
  • 21 сообщений

Отправлено 09 декабря 2008 - 16:42

отключить использование JavaScript

не читал что писали но отключить можно в браузере, а потом запустить сервер с нужным профайлом браузера. Вот так например java -jar selenium-server.jar -firefoxProfileTemplate c:\myprofile\
  • 0

#19 Jolly

Jolly

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Олег
  • Город:Днепропетровск

Отправлено 09 декабря 2008 - 17:12

отключить использование JavaScript

не читал что писали но отключить можно в браузере, а потом запустить сервер с нужным профайлом браузера. Вот так например java -jar selenium-server.jar -firefoxProfileTemplate c:\myprofile\


То что надо :crazy:
  • 0


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

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