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

Публикации mosketrem

14 публикаций создано mosketrem (учитываются публикации только с 30 марта 2023)


#99342 Текст в скрытом элементе DOM (webdriver, python)

Отправлено автор: mosketrem 04 января 2012 - 11:05 в Selenium - Functional Testing

Есть ли у веб-драйвера проблемы с получением текста из скрытого элемента ?
Пишу на питоне
print unitTestClass.driver.find_element_by_id("id_of_the_hidden_element")
и получаю
<selenium.webdriver.remote.webelement.WebElement object at 0x2091f90>
А если пытаюсь получить текст из этого эелемента
print unitTestClass.driver.find_element_by_id("id_of_the_hidden_element").text
то не выводит ничего.



#98586 Windows error: [Error 2]

Отправлено автор: mosketrem 12 декабря 2011 - 14:40 в Selenium - Functional Testing

Почему-то не работает вебдрайвер, при попытке инициализировать экземпляр класса браузера (в данном случае файрфокс) возвращается ошибка. На скриншоте видно. ПРи чем это не специфичная для платформы проблема, на виртуалке поднимал винду семерку, ставил все заново, там работает.
Собственно, в чем может быть проблема ? Не хочеться все систему из-за этого переустанавливать.

Прикрепленные изображения

  • 2011-12-12_1635.png



#85127 Один браузер - много тест-кейсов (тест-сьют), Selenium RC + Python

Отправлено автор: mosketrem 02 марта 2011 - 13:09 в Selenium - Functional Testing

Не знаю чем руководствовался Баранцев, но мы для атомарности для каждого нового теста запускаем новую сессию, что конечно сказывается на производительности, но позволяет избежать ошибок тестов из за "грязной" сессии.

Вы совершенно правы на счет ошибок из-за "грязной" сессии. Но Баранцев объяснил свое предложение соответствием поведения тестов работе обычных пользователей. Ведь обычный пользователь не закрывает браузер после каждого простого действия. А если из-за таких сессий валятся тесты, значит мы нашли баг и его нужно репортить и исправлять. Я думаю, что в этом есть смысл.

Как бы то ни было, думаю не стоит превращать тему в спор на счет полезности такого поведения. Мне бы хотелось просто узнать как это правильно сделать.



#85106 Один браузер - много тест-кейсов (тест-сьют), Selenium RC + Python

Отправлено автор: mosketrem 02 марта 2011 - 10:09 в Selenium - Functional Testing

Был на конференции SeleniumCamp. На своем докладе А.Баранцев рассказывал о способах оптимизации тестов. Один такой способ: запускать браузер наименьшее количество раз, т.е. один раз запустили и проганяете максимальное количество тестов в нем. Но так как я зашел в зал как раз, когда он заканчивал об этом рассказывать, а также потому, что я пишу на питоне, а не на java, я не понял как мне организовать такое поведение в моих тестах.
Может предложите конкретное решение для Selenium RC + python ? Я почему-то не могу сообразить. Разве что использовать следующую структуру:
from selenium import selenium
import unittest, time, re

class Untitled(unittest.TestCase):
    def setUp(self):
        self.verificationErrors = []
        self.selenium = selenium("localhost", 4444, "*chrome", "http://change-this-to-the-site-you-are-testing/")
        self.selenium.start()
    
    def test_untitled1(self):
        sel = self.selenium
    
    def test_untitled2(self):
        sel = self.selenium

    def test_untitled3(self):
        sel = self.selenium

    def tearDown(self):
        self.selenium.stop()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()



#84568 Как открыть несколько вкладок и переключаться по ним ?

Отправлено автор: mosketrem 18 февраля 2011 - 09:04 в Selenium - Functional Testing

Настоящий тестер не имеет права на комплексы :)

А идея с кликом по координатам мне не очень нравится, буду искать дальше...



#84561 Как открыть несколько вкладок и переключаться по ним ?

Отправлено автор: mosketrem 17 февраля 2011 - 20:38 в Selenium - Functional Testing

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



#84354 Как открыть несколько вкладок и переключаться по ним ?

Отправлено автор: mosketrem 14 февраля 2011 - 15:31 в Selenium - Functional Testing

вы правы, просто так как бы проще, когда спешишь...



#84346 Как открыть несколько вкладок и переключаться по ним ?

Отправлено автор: mosketrem 14 февраля 2011 - 11:15 в Selenium - Functional Testing

Selenium RC + Python
sel.open("/")
    sel.wait_for_page_to_load("30000")
    time.sleep(3)
    sel.type("login-f_email", login)
    sel.type("login-f_password", pass)
    sel.click("login_loginButton")
    
    sel.open_window("http://gmail.com/", "GMail")
    time.sleep(3)
    sel.select_window("GMail")
    sel.type("Email", g_login2)
    sel.type("Passwd", g_pass2)
    sel.click("signIn")
    sel.wait_for_page_to_load("60000")
    time.sleep(5)
    #sel.click_at("//div[@id=':co']/div[1]/div", "")
    #sel.click("//div[text()='Compose mail']")
    sel.select_frame("canvas_frame")
    sel.click_at("//div[text()='Compose mail']", "")
    time.sleep(5)
    sel.type("//textarea[@name='to']", "dmitriytestovich7@gmail.com")
    rndm_var = sel.get_eval("(((1171*Math.random())*0x1113+Math.random()*0x100)|0)")
    sel.type("//input[@name='subject']", "test_" + rndm_var)
    sel.click_at("//div/b[text()='Send']", "")
    unitTestCase.failUnless(re.search(r"^Send this message without text in the body[\s\S]$", sel.get_confirmation()))
    time.sleep(30)
    
    sel.select_window("null")
    ...
    
    sel.select_window("GMail")
    time.sleep(1)
    sel.click("link=Sign out")
    time.sleep(3)
    sel.type("Email", g_login1)
    sel.type("Passwd", g_pass1)
    sel.click("signIn")
    sel.wait_for_page_to_load("30000")
    time.sleep(5)
    # go to 'Starred'
    sel.click("link=Starred")
    time.sleep(4)
    try: unitTestCase.assertEqual("test_" + rndm_var, sel.get_text("//table/tbody/tr/td[5]/div/div/div[2]/span/b"))
    except AssertionError, e: unitTestCase.verificationErrors.append("There is no your mail in starred: " + str(e))
    time.sleep(5)
    sel.select_frame("canvas_frame")
    sel.click_at("//tr[td/div/div/div/span/b[text()='test_" + rndm_var + "']]/td[2]/img", "")   # вот эта операция сейчас не отрабатывается
    
    sel.select_window("null")
    sel.click("link=Starred")
    time.sleep(5)
    ...



#84271 Как открыть несколько вкладок и переключаться по ним ?

Отправлено автор: mosketrem 11 февраля 2011 - 09:10 в Selenium - Functional Testing

ну, как я и написал вчера, selectFrame никаких изменений в поведение теста не вносит. Сегодня кнопка "Создать письмо" нажимается (ну, один раз не нажалась). А вот кликать по звездочке сегодня селениум отказывается, без выдачи каких-либо ошибок. Говорит "я кликнул", а звездочка возле письма остается неизмененной. Вот такие дела....



#84254 Как открыть несколько вкладок и переключаться по ним ?

Отправлено автор: mosketrem 10 февраля 2011 - 20:37 в Selenium - Functional Testing

Кнопка в IFrame там, на него нужно переключаться. Это, считай, отдельное окно.

Пробовал selectFrame. Но что-то никакой реакции. Правда я опять в IDE пробовал... может надо было через RC сразу ?..



#84246 Как открыть несколько вкладок и переключаться по ним ?

Отправлено автор: mosketrem 10 февраля 2011 - 16:09 в Selenium - Functional Testing

В общем пришлось писать в Selenium RC, чего я хотел избежать. Правда тест постоянно падает в совершенно разных местах, по совсем непонятным причинам. Например, мне нужно было в gmail создавать письмо, а потом на этом письме проверять синхронизацию проверяемого сайта с gmail. Весь день письмо нормально отправлялось, и я решал другие проблемы. Теперь скрипт не может кликнуть по кнопке в gmail "Создать письмо", хоть ты тресни ему ! И непонятно в чем дело. Локатор правильный, весь день работало нормально. А вот к концу дня перестала эта команда срабатывать



#84202 Как открыть несколько вкладок и переключаться по ним ?

Отправлено автор: mosketrem 10 февраля 2011 - 09:59 в Selenium - Functional Testing

Selenium требует точного совпадения заголовка окна для selectWindow, узнать его можно с помощью GetAllWindowTitles. И заголовок окна появляется не мгновенно, т.е. скорее всего нужно будет подождать (например, с помощью WaitForCondition) и потом уже выбирать нужное окно.

Это в IDE можно использовать ? Кажется GetAllWindowTitles в IDE нет...

P.S.
Кое-что наваял в питоне для RC. Попросил колегу проверить работает ли у нее при дефолтных настройках браузера ? Хочу быть уверенным в переносимости



#84193 Как открыть несколько вкладок и переключаться по ним ?

Отправлено автор: mosketrem 10 февраля 2011 - 08:54 в Selenium - Functional Testing

К сожалению я не знаю как работать с несколькими окнами. Не могли бы объяснить ?

Пробовал
<tr>
	<td>openWindow</td>
	<td>http://gmail.com/</td>
	<td>GMail</td>
</tr>
<tr>
	<td>selectWindow</td>
	<td>GMail</td>
	<td></td>
</tr>
Но это у меня ен работает. Открывается новая вкладка, а на вторую команду получаю сообщение [error] Could not find window with title GMail

Нашел в настройках браузера, что у меня было указано открывать во вкладках новые окна. Видимо кастомная инсталяха ФФ попалась когда-то. Теперь открывает новые окна. Но ходить по этим окнам мне пока что все равно не получается



#84177 Как открыть несколько вкладок и переключаться по ним ?

Отправлено автор: mosketrem 09 февраля 2011 - 21:04 в Selenium - Functional Testing

Привет !
Есть задача проверять синхронизацию почтового клиента с GMail. Т.е. нужно зайти на gmail (скажем аккаунт Б), послать на определенный аккаунт письмо (аккаунт А), потом открыть другую вкладку, там зайти на сайт, который получает с нашего аккаунта А письма (и посылает тоже от его имени), убедиться, что только что пришедшее на аккаунт А письмо там показывается. Так же нужно проделывать всякие манипуляции с письмами (переносить в разные папки, отмечать звездой и т.д.) и соответственно переключаться между вкладками для проверки зеркального соответствия.
Вот я и пытаюсь понять как мне в IDE сделать переходы туда-сюда. Гуглил, пробовал, не получается.

Помогите кто чем может !