Если у Вас есть интерес к выбиранию цветов как переменные, следующее может быть полезным для установки цветной панели для сценариев удара
COL_BLACK="\x1b[30;01m"
COL_LIGHTBLACK="\x1b[30;11m"
COL_BLUE="\x1b[34;01m"
COL_LIGHTBLUE="\x1b[34;11m"
COL_CYAN="\x1b[36;01m"
COL_LIGHTCYAN="\x1b[36;11m"
COL_GRAY="\x1b[37;11m"
COL_LIGHTGRAY="\x1b[37;01m"
COL_GREEN="\x1b[32;01m"
COL_LIGHTGREEN="\x1b[32;11m"
COL_PURPLE="\x1b[35;01m"
COL_LIGHTPURPLE="\x1b[35;11m"
COL_RED="\x1b[31;01m"
COL_LIGHTRED="\x1b[31;11m"
COL_YELLOW="\x1b[33;01m"
COL_LIGHTYELLOW="\x1b[33;11m"
COL_RESET="\x1b[39;49;00m"
Можно выполнить Селен на бездисплейной установке на сервере, например, путем программирования действий в Python с помощью pyvirtualdisplay.
pyvirtualdisplay
позволяет Вам использовать a xvfb
, xepher
или xvnc
экранируйте, таким образом, можно сделать снимок экрана (или взять удаленный быстрый взгляд для наблюдения то, что продолжается).
На установке Ubuntu 12.04:
sudo apt-get install python-pip tightvncserver xtightvncviewer
sudo pip install selenium pyvirtualdisplay
и выполненный следующее (это использует более новый Selenium2 API, более старый API, все еще доступно также):
import subprocess
from pyvirtualdisplay import Display
from selenium import webdriver
def browse_it(port=None):
browser = webdriver.Firefox()
page = browser.get('http://unix.stackexchange.com/questions')
for question in browser.find_elements_by_class_name('question-hyperlink'):
print question.text
if port:
print '--------\nconnect using:\n vncviewer ' + \
'localhost:{}\nand click the xmessage to quit'.format(port)
subprocess.call(['xmessage', 'click to quit'])
browser.quit()
def browse_it_hidden(rfbport=5904):
with Display(backend='xvnc', rfbport=str(rfbport)) as disp:
browse_it(rfbport)
if __name__ == '__main__':
browse_it_hidden()
xmessage
предотвращает браузер для выхода, в тестовых средах Вы не хотели бы это. Можно также звонить browse_it()
непосредственно протестировать на переднем плане.
Результаты Селена find_element.....()
не обеспечивайте вещи как выбор родительского элемента элемента, который Вы просто нашли. Что-то, что Вы могли бы ожидать от пакетов парсинга HTML (я считал где-нибудь это, нарочно). Эти ограничения могут быть видом стычки, если Вы делаете очистку страниц, Вы не имеете никакого контроля. При тестировании собственного сайта просто удостоверьтесь, что Вы генерируете все элементы, которые Вы хотите протестировать с id
или уникальный class
таким образом, они могут быть выбраны без стычки.
Взгляните на WWW:: Механизируйте (Примеры по http://search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize/Examples.pod). Это берет Вашу веб-страницу в качестве объекта и делает все элементы доступными с помощью методов.
Например,
$m->get("https://lists.ccs.neu.edu/bin/admindb/$listname");
$m->set_visible( $password );
$m->click;
Существуют порты для (al наименьшее) рубин и Python, также.
Live HTTP Headers
плагин для записи сессии между браузером и веб-сайтом, так, чтобы Вы поняли взаимодействие полного пути, также. Какие cookie необходимо сохранить? Существующий? Какие формы называют с какой переменные и скрытые переменные и т.д. После того как у Вас есть все это, это должно быть достижимо для автоматизации задачи.
– Tim Kennedy
24.05.2013, 15:30
Вы могли использовать любой из:
В основном любой язык, который позволяет Вам запросить сетевой ресурс, сделал бы...