Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Slenium + PyQT


(Аретм) #1

Всем доброго дня!
Проблема в следующем: написал небольшой тест на Selenium, драйвер использую Firefox, все прекрасно работает. Но теперь встала задача вклинить этот тест в окошко программы, которое я создаю с помощью PyQT. Т.е. мне нужно чтобы тест Selenium запускался не через встроенный в систему броузер Firefox, а открывался в окошке моей программы и после завершения, пользователь мог бы дальше использовать этот браузер в своих целях (например простой серфинг...)

Подскажите, пожалуйста решение! Я в отчаянии... Вторую неделю ищу ответ... 

 


(Mykhailo Poliarush) #2

уж очень специфическая у вас задача,

мне очень интересно почему вам надо открывать тесты в вашей встроенной программе?

к сожалению, как вы уже поняли, встренных средств для запуска ваших тестов в такой программе нету

и скорее всего у вас ничего не получиться с этой задумкой

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


(Аретм) #3

http://www.riverbankcomputing.co.uk/software/pyqt/intro - English

http://ru.wikipedia.org/wiki/PyQt - Russian


(Mykhailo Poliarush) #4

ну что такое PyQT я знаю, меня интересует, какое у вас приложение

ведь вы хотите прогонять тесты в своем приложеии


(Аретм) #5

На данном этапе, мне нужно хотябы просто встроить например вот этот  код (Python):

 

#!/usr/bin/env python

# -*- coding: utf-8 -*-

from selenium import webdriver

from selenium.common.exceptions import NoSuchElementException

from selenium.webdriver.common.keys import Keys

import time

browser = webdriver.Firefox() # Get local session of firefox

browser.get("http://www.yandex.ru") # Load page

assert "Яндекс".decode("utf-8") in browser.title

elem = browser.find_element_by_name("text") # Find the query box

elem.send_keys("http://программисту.рф/".decode("utf-8") + Keys.RETURN)

time.sleep(0.2) # Let the page load, will be added to the API

 

В окошко PyQT.

Т.е. чтобы при запуске не запускался Firefox из системы, а браузер открывался в окошке PyQT.


(apetrovskiy) #6

Интересно, драйвер коммуницирует с браузером на самой ранней стадии запуска процесса? Если драйвер просто запускает процесс, а опрашивать браузер начинает через секунду или несколько, задайте вместо пути к браузеру путь к вашему приложению. Имею в виду запуск через сервис -ваше приложение может узнать номер порта и запустить браузер на этом порту.

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


(Mykhailo Poliarush) #7

да, походу без настренного вашего environment я вам особо не помогу

а какая у вас проблема возникает? ошибки еще что-то 


(Аретм) #8

Проблема в том, что я никак не найду способ встроить окно браузера (с автоматическим выполнением некоторых действий например авторизация) в свое Gui приложение...

Вопос так и не решен