Помнить о том, что сервис вопросов и ответов «Хабр Q&A» не является форумом, чатом или социальной сетью. Следует избегать употребления речевых оборотов, характерных для этих типов ресурсов. Вопрос и его описание не должны содержать приветствий и прочих «лирических отступлений».
следует понимать, что само по себе добавление вопросительного знака не превращает любое предложение в вопрос, поэтому следует использовать порядок слов, характерный для вопросительных предложений.
import re
from subprocess import Popen, PIPE, STDOUT
ping_res = Popen("ping vk.com -n 1", stdout=PIPE, stderr=STDOUT)
lines = [i.decode('cp866') for i in ping_res.stdout.readlines()]
if bool(lines):
for line in lines:
if 'Среднее = ' in line:
vk = re.search(r'Среднее = (\d+) мсек', line)
print(f'{vk.groups()[0]} мс')
break
actions = [
{'by': 'xpath', 'title': 'Моя страница - Комиссии', 'value': '//*[@id="top-menu"]/ul/li[3]/a',
'act': 'click', 'text': None, 'pause': 0, 'check': None, 'postact': None, 'descr': 'кликаем на "Проекты"'},
{'by': 'xpath', 'title': 'Проекты - Проекты - Комиссии', 'value': '//*[@id="main-menu"]/ul/li[3]/a',
'act': 'click', 'text': None, 'pause': 0, 'check': None, 'postact': None, 'descr': 'кликаем на "Задачи"'},
def do_next_step(driver, action):
by = action['by']
title = action['title']
value = action['value']
act = action['act']
text = action['text']
pause = action['pause']
check = action['check'] # for future
postact = action['postact'] # for future
if not title or driver.title == title:
obj = driver.find_element(by=by, value=value)
objs = driver.find_elements(by=by, value=value)
if act == 'click':
obj.click()
elif act == 'multiclick':
for checkbox in objs:
checkbox.click()
elif act == 'write':
obj.send_keys(text)
elif act == 'submit':
for item in objs:
item.submit()
else:
pass
if pause:
time.sleep(pause)
else:
print(f'ERROR! Title {title} not found')
Варианты - использовать онлайн-пинговалки с API, либо придумать очень дешевый либо даже бесплатный VPS.