Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Пояснение автоматизации в браузере с помощью Кибор, Python и Selenium
Использование Python в Кибор.
Автоматизация работы в браузере с помощью Selenium.
Демонстрация поиска в Гугле нужного сайта по нужным запросам и переход на него.
Работа с браузером идет с привязкой к элементам страницы. Не зависит от внешнего вида, разрешения окна и так далее. Работает в фоновом режиме. Может без самого браузера.
CODE:
string find="Распознать текст OCR";//Запрос
string path_webdriver=pathfolder()+"python\webdriver\geckodriver.exe"; // Путь к webdriver. C:\Program Files (x86)\Kibor\python\webdriver\geckodriver.exe
string path_browser="C:\Program Files (x86)\Mozilla Firefox\Firefox.exe"; // Путь к браузеру Мозила
if (runpython()==0){messagebox ("Не удалось запустить Python"); goto er;}//Запускаем интерпретатор Python
//Подготовка
import();
//Запуск браузера и переход на https://www.google.com
start_browser();
//Находим на поисковой странице Гугла поле для ввода в поиск и вводим туда запрос
find_google();
//Искать на странице открывшегося поиска ссылку которая ведет на kibor-bot.com и кликнуть по ней
F: if (find_site("kibor-bot.com")==0)//Если этой станице ссылки на kibor-bot.com нет
{//Надо перейти на следующую станицу поиска
if (find_site("Следующая")==0) goto exits;//Если на этой странице нет кнопки Следующая завершить программу
pause(5000);//Если кликнули по кнопке Следующая пауза 5 секунд и повторяем поиск ссылки на kibor-bot.com
goto F;
}
exits:;
closepython();//Завершаем работу с интерпретатором
er:;
function find_site(string find_link)//Искать на странице открывшегося поиска ссылку которая ведет на указанный линк
{
string rez;
sendpython("web.find_element_by_partial_link_text(^'"+find_link+"^').click()");//Отправляем Питону команду найти ссылку содержащую kibor-bot.com и по ней кликнуть
sendpython("print(^'yes^')");//Сразу же не ожидая окончания первой команды Отправить print('yes')
loop()//Замкнутый цикл в котором ждем ответ
{
rez=getpython();//Пытаемся считать ответ Если ссылка не была найдена, то в ответе кроме yes будет еще описание ошибки.
if (rez!="ERROR_READ_PYTHON")//Если Питон нам что то ответил..
{
//messagebox (rez+);//Посмотреть что приходит когда нашли ссыку и когда не нашли
if (rez=="yes")return 1;//Если в ответе только слово yes, значит мы нашли ссылку и описания ошибки нет.
return 0;//Иначе в ответе не только слово yes. Значит мы не нашли ссылку
}
}
}
function find_google()//Находим на поисковой странице Гугла поле для ввода в поиск и вводим туда значение переменной find
{
//Вначале инициализируем переменную finds в Pythen нашей переменной find синхронной функцией
sendgetpython("finds=^'"+find+"^'"); // finds=find
__python
element = web.find_element_by_name('q')
element.send_keys(finds)
time.sleep(1);
element.send_keys(Keys.ENTER)
time.sleep(3);
print('yes')
__end_python
while (getpython()!="yes")sleep(100);// Ждем в цикле ответ "yes". Оно будет когжа скрипт Pythen отработает
}
function start_browser()//Запуск браузера
{
//Вначале инициализируем переменные в Pythen нашими значениями синхронными функциями.
sendgetpython("p_web=^'"+path_webdriver+"^'");// p_web=path_webdriver
sendgetpython("p_br=^'"+path_browser+"^'"); // p_br=path_browser
__python
web = webdriver.Firefox(executable_path=p_web, firefox_binary=p_br) # Тут мы используе переменные p_web и p_br
web.get('https://www.google.com')
time.sleep(1);
print('yes')
__end_python
while (getpython()!="yes")sleep(100);// Ждем в цикле ответ "yes". Оно будет когжа скрипт Pythen отработает
}
function import()//Подготовка
{
__python
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
print('yes')
__end_python
while (getpython()!="yes")sleep(100);// Ждем в цикле ответ "yes". Оно будет когжа скрипт Pythen отработает
}
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.