Кто звонил с незнакомого номера и сопел в трубку? Кто такая «Лена из Мордора», появившаяся в телефонной книжке после субботней вечеринки? Введи 10 последних цифр телефона в строку поиска на «Фейсбуке», и, скорее всего, ты узнаешь ответы. По умолчанию возможность находить человека по телефонному номеру включена у всех пользователей.


Если не хочешь, чтобы этот фокус проходил с тобой, измени свои настройки конфиденциальности .


2. Отключи статус «Просмотрено» в сообщениях

Эта функция рушит отношения и жизни! Конечно, кому приятно, когда в открытую игнорируют лично подобранные смешные картинки и важные новости.


Если ты не из тех, кто может хладнокровно оставлять неотвеченными сообщения знакомых, воспользуйся расширением для браузера. Оно отключает в десктопной версии «Фейсбука» статус сообщений «Просмотрено/Не просмотрено». Для браузера «Хром» это Facebook Unseen . Для «Фаерфокса» и «Эксплорера» - Chat Undetected . Но есть и отрицательный момент: с этими расширениями ты тоже не сможешь видеть статус прочитанности.


3. Спрячь свой онлайн-статус от приставучих друзей

Если тебе окончательно надоел какой-нибудь друг, то отключи чат с ним. Нажми на шестеренку в правом столбце со списком друзей и выбери «Расширенные настройки».


Сообщения из выключенного чата будут храниться в папке «Входящие», но, в отличие от предыдущего пункта, ты не сможешь их прочитать незаметно.


4. Смотри в ленте новостей только посты от друзей и сообществ, на которые подписан

«Фейсбук» хочет каждого затянуть в свои трясины как можно глубже. Именно для этого он показывает пользователям залайканные и прокомментированные друзьями посты. Но есть способ оставить в своей ленте только записи друзей и сообществ, на которые ты подписан.

Установи в «Хроме» расширение friends feed . С ним посторонние посты будут или скрываться, или покрываться серой поволокой - выбирай в настройках.

5. Читай скрытые сообщения

Кто знает, может, твоя жизнь не так скучна, как кажется. Возможно, тебя звали на работу мечты, признавались в любви тайные воздыхательницы и угрожали убийством их поклонники. Но ты об этом ничего не знал, потому что «Фейсбук» помещает сообщения от посторонних пользователей в скрытую папку и никак тебя не уведомляет о них. Нажми на вкладку «Другое» (у многих она с недавних пор называется «Запрос на переписку») рядом с основными сообщениями и узри все, что было скрыто!

6. Скрой список своих друзей от посторонних глаз

Даже не будем строить догадки, почему ты можешь стесняться своих фейсбучных знакомых. Просто перейди на личной странице во вкладку «Друзья», нажми на карандаш и укажи, кто может видеть круг твоих товарищей по «Фейсбуку».

7. Отключи автовоспроизведение видео

Одним махом можно привнести немного спокойствия в свою ленту и сэкономить мобильный трафик. Для этого отключи автоматическое воспроизведение видеороликов. В родном приложении «Фейсбука» зайди в настройки аккаунта > «Видео и фото» > «Автозапуск» > выбери требуемую настройку.

8. Делись гифками на «Фейсбуке»

Любишь ли ты гифки так, как ? В случае положительного ответа рассказываем, как делиться ими на «Фейсбуке». Вставь в поле статуса ссылку на гифку (да-да, загрузить напрямую с компьютера не получится). После того как она подгрузится, ссылку можно удалить. Публикуй.

9. Меняй статус отношений без лишних драм

Между внутренним решением прекратить отношения и объявлением об этом второй стороне может пройти много времени. А начать искать новые романтические приключения в «Фейсбуке» хочется сразу. По умолчанию оповещение об изменении в личной жизни появляется в ленте у всех друзей. Так что не забудь выбрать настройку «Только я» в пункте «Информация» > «Семья и отношения».

10. Сохраняй интересные посты в закладки, чтобы прочитать их позже

Тысячи постов ежедневно появляются в твоей ленте «Фейсбука», все невозможно прочитать, даже если полностью отказаться от идеи поработать. К счастью, в соцсети есть встроенный сервис закладок. Чтобы сохранить пост на будущее, нажми стрелку в правом верхнем углу.

Данная статья будет в первую очередь полезна начинающим оптимизаторам, потому что более продвинутые и так должны знать о них все. Для того, чтобы использовать данную статью с максимальной эффективностью, желательно точно знать, какие слова необходимо поднять на нужные позиции. Если вы еще точно не уверены в списке слов, или воспользуйтесь сервисом подсказки ключевых слов, он немного запутан, но разобраться можно.

Важно! Будьте уверены, Google прекрасно понимает, что обычные пользователи не будут ими пользоваться и только специалисты по продвижению прибегают к их помощи. Поэтому Google может немного искажать предоставляемую информацию

Оператор Intitle:

Использование: intitle:слово
Пример: intitle:раскрутка сайта
Описание: При использовании этого оператора вы получите список страниц, в заголовке (title) которых есть интересующее вас слово, в нашем случае это фраза «раскрутка сайта» целиком. Обратите внимание на то, что после двоеточия не должно быть пробела. Заголовок страницы имеет важное значение при ранжировании, поэтому отнеситесь к составлению заголовков со всей ответственностью. При использовании этой переменной вы сможете оценить приблизительное количество конкурентов, которые так же хотят быть на лидирующих позициях по этому слову.

Оператор Inurl:

Использование: inurl:фраза
Пример: inurl:расчет стоимости поисковой оптимизации
Описание: Эта команда показывает сайты или страницы, которые имеют в адресе URL исходное ключевое слово. Обратите внимание на то, что после двоеточия не должно быть пробела.

Оператор Inanchor:

Использование: inanchor:фраза
Пример: inanchor:seo книги
Описание: Использование этого оператора поможет вам увидеть страницы, на которые есть ссылки с используемым ключевым словом. Это очень важная команда, но, к сожалению, поисковые машины неохотно делятся этой информацией с оптимизаторами по очевидным причинам. Есть сервисы, Linkscape and Majestic SEO, которые готовы предоставить вам эту информацию за определенную плату, но будьте уверены, информация того стоит.

Так же, стоит помнить, что сейчас Google все больше внимания уделяет «трастовости» сайта и все меньше ссылочной массе. Безусловно, ссылки все еще один из самых важных факторов, но «трастовость» играет все более значимую роль.

Неплохие результаты дает комбинация двух переменных, например intitle:продвижение inanchor:раскрутка сайта. И что же мы видим, поисковая система покажет нам основных конкурентов, в заголовке страницы которых содержится слово «продвижение» и входящими ссылками с анкором «раскрутка сайта ».

К сожалению, данная комбинация не позволяет узнать «трастовость» домена, которая как мы уже говорили, является очень важным фактором. К примеру, множество старых корпоративных сайтов не имеют такого количества ссылок, как их молодые конкуренты, но они имеют много старых ссылок, которые и вытягивают эти сайты на вершину поисковой выдачи.

Оператор Site:

Использование: site:адрес сайта
Пример: site:www.aweb.com.ua
Описание: С помощью этой команды вы можете увидеть список страниц, которые проиндексированы поисковой системой и о которых она знает. Применяется в основном для того, чтобы узнать о страницах конкурентов и проанализировать их.

Оператор Cache:

Использование: cache:адрес страницы
Пример: cache:www.aweb.com.ua
Описание: Эта команда показывает «снимок» страницы с того момента, когда робот заходил на сайт последний раз и вообще, как он видит содержимое страницы. Проверяя дату кэша страницы, вы можете определить, как часто роботы заходят на сайт. Чем более авторитетный сайт, тем чаще роботы на него заходят и соответственно, чем менее авторитетный (по мнению Google) сайт, тем реже роботы делают снимки страницы.

Кэш очень важен при покупке ссылок. Чем ближе дата кэширования страницы к дате покупки ссылки – тем быстрее ваша ссылка будет проиндексирована поисковой системой Google. Иногда получалось находить страницы с возрастом кэша в 3 месяца. Купив ссылку на таком сайте, вы только напрасно потратите свои средства, ведь вполне возможно, что ссылка никогда не будет проиндексирована.

Оператор Link:

Использование: link:url
Пример: link:www.aweb.com.ua
Описание: Оператор link: ищет и показывает страницы, которые ссылаются на указанный адрес url. Это может быть как главная страница сайта, так и внутренняя.

Оператор Related:

Использование: related:url
Пример: related:www.aweb.com.ua
Описание: Оператор related: выводит страницы, которые, по мнению поисковой системы, похожи с указанной страницей. Для человека все полученные страницы могут и не иметь ничего похожего, но для поисковой системы это так.

Оператор Info:

Использование: info:url
Пример: info:www.aweb.com.ua
Описание: При использовании этого оператора, мы сможем получить информацию о странице, которая известна поисковой системе. Это может быть автор, дата публикации и многое другое. Дополнительно, на странице поиска, Google предлагает сразу несколько действий, которые он может сделать с этой страницей. Или, проще говоря, он предложит использовать некоторые операторы, которые мы описали выше.

Оператор Allintitle:

Использование: allintitle:фраза
Пример: allintitle:раскрутка aweb
Описание: Если мы начнем поисковой запрос с этого слова, мы получим список страниц, в заголовке которых есть вся фраза. К примеру, если мы попробуем поискать слово allintitle:раскрутка aweb, то получим список страниц, в заголовке которых упоминаются эти оба слова. И совсем не обязательно они должны идти друг за другом, они могут располагаться в разных местах заголовка.

Оператор Allintext:

Использование: allintext:слово
Пример: allintext:оптимизация
Описание: Этот оператор ищет все страницы, в теле текста которых есть указанное слово. Если мы попробуем использовать allintext:оптимизация aweb, то увидим список страниц, в тексте которых встречаются эти слова. То есть, не вся фраза целиком «оптимизация aweb», а оба слова и «оптимизация» и «aweb».

За последние несколько лет появилось множество статей, которые предупреждают о том, что хакеры (или cracker"ы, если хотите) используют поисковую систему google для получения доступа к файлам, к которым, по идее, они доступа иметь не должны. То, что я расскажу вам, возможно, кто-то уже давно использует в своих целях, но мне всегда было интересно самому узнать, как это работает. В 2001 году, James Middleton написал статью для vnunet.com, в которой шла речь об использовании хакерами специальных слов в поисковой машине google, для нахождения важной банковской информации:

"В сообщении, находившемся в одной из security конференций было сказано, что введя "Index of / +banques +filetype:xls" в строку поиска, в конечном счете можно было заполучить важные / секретные таблицы Excel из Французских банков. Та же самая технология может быть использована для поиска файлов с паролями"

В другой статье, которая появилась на wired.com, рассказывается, как Adrian Lamo, хакер часто попадающий в сводки компьютерных преступлений, использовал Google, чтобы получить доступ к web сайтам крупных корпораций.

"Например, введя фразу "Select a database to view" - обычная фраза, используемая в FileMaker Pro database interface" - Google выдает примерно 200 ссылок, большинство из которых ведут на страницу с доступом к FileMaker для всех пользователей."

Подобные статьи продолжали и продолжали появляться в internet. Правительственные и Военные сайты Соединенных Штатов были тоже уязвимы, потому что скрипты используемые админами, можно было легко найти с помощью google. Медицинские карты, личные записи - все могло неожиданно оказаться в руках пользователей этой поисковой системы. Но в статьях никогда не было описано, как можно использовать Google в "таких" целях. Даже пример строки, которую вводил хакер не предоставлялся широкой аудитории. После того, как я последний раз прочитал подобную статью, я решил, что пора самому во всем разобраться - действительно ли google позволяет делать все то, о чем так много раз упоминалось в различных докладах. Следующий текст является результатом моих исследований.

Теория

На самом деле, теория очень проста. Чтобы получить интересующую вас информацию, вам нужно попробовать представить, в каких файлах эта информация может находиться, а затем просто попытаться их найти. (Например, попробуйте поискать *.xls файлы). Или же вы можете избрать более интересный подход - подумать, какой софт установленный на атакуемой машине, предоставляет возможность выполнять нужные вам задачи, затем ввести критические/опасные файлы этого программного обеспечения в строку поиска. Примером может послужить система управления содержанием сайта (content management system). Вам нужно исследовать эту систему, выяснить, какие файлы она в себя включает, а затем воспользоваться google. Но вернемся к примеру о базе данных, рассмотренном чуть выше. Вы знаете, что строка "view database" находится на тех web страницах, которые не должны быть вам доступны. Следовательно, вам остается только найти страницы, в которых содержится данная строка или же узнать, что, например, опция "view database" ссылается на страницу "viewdbase.htm", то есть ее и надо будет ввести в строку поиска.

Самое главное - четко поставить перед собой цель и знать, что вы хотите найти. Только после этого вы можете воспользоваться Google.

Опции поиска Google

Google позволяет искать специальные типы файлов, то есть, как результат поиска, вы получаете не html-страницы (web сайты), а, например, файл Microsoft Excel. Вот что нужно ввести в строку поиска:

Filetype:xls (для файлов excel) или filetype:doc для файлов Word.

Наверное, будет интереснее найти файлы *.db и *.mdb. Можно поискать и другие типы файлов. Первое, что приходит на ум - *.cfg или *.pwd, *.dat файлы и т. п. Сначала подумайте, какие файлы могут содержать ценную информацию.

Еще одна полезная опция при поиске - inurl: опция, которая позволяет искать заданные слова в url. Это дает вам возможность искать нужные каталоги.

Пример: inurl:admin Результатом поиска станут web-сайты, у которых в url имеется слово "admin".

Index of

Опция "index of" тоже не до конца продумана разработчиками google, но нам она очень пригодится. Если вы используете опцию "index of", то как результат, google вам покажет листинг директории на сервере. Вот пример:

"index of" admin или index.of.admin

В результате вы получите листинг множества директорий "admin".

Опция "site" позволяет показывать результаты поиска только по определенному домену или сайту. Например, вы можете искать как на всех.com или.box.sk или.nl сайтах, так и только на одном сайте. Будет очень интересно поискать на военных и правительственных сайтах. Вот пример строки поиска:

Site:mil или site:gov

Site:neworder.box.sk "board"

Intitle - еще одна интересная опция. Она позволяет вам искать html файлы, в заголовке которых присутствует нужное вам слово или комбинация слов. Строка поиска при этом будет выглядеть так: intitle:здесь_слово. Вы можете узнать, какие слова присутствуют в заголовке, скажем, той же системы управления содержанием сайта, а затем искать эти слова в google, используя при этом опцию Intitle. В результате, вы получите доступ к подобным системам на других сайтах.

Опция Link позволяет вам узнать, на каких web страницах есть ссылка на указанный вами сайт. Как описано в книге "Hacking Exposed Third Edition" (Секреты Хакеров Третье Издание), эту опцию мы также можем использовать в своих целях.

Комбинируем опции при поиске

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

inurl:nasa.gov filetype:xls "restricted" или это: site:mil filetype:xls "password" или может быть это: site:mil "index of" admin

(Эти примеры я взял из головы и не знаю, выдаст ли google что-нибудь интересное. Вам необходимо найти такое сочетание опций, чтобы получить ожидаемый результат).

Примеры; Практический Материал

Специальные типы файлов: *.xls, *.doc, *.pdf *.ps *.ppt *.rtf

Для начала, попробуйте поискать те файлы, в которых, вы думаете, находится интересующая вас информация. Для меня очевидным выбором стали следующие вещи:

Password, passwords, pwd, account, accounts, userid, uid, login, logins, secret, secrets. Конечно, все эти слова я искал с расширением *.doc, *.xls и *.db

Вот и появились первые интересные результаты, особенно, если искать файлы с расширением *.db. Правда, пароли я также находил и в *.doc файлах.

http://www.doc.state.ok.us/Spreadsheets/private%20prison%20survey%20for%20web.xls
http://www.bmo.com/investorrelations/current/current/suppnew/private.xls
http://www.nescaum.org/Greenhouse/Private/Participant_List.xls
http://www.dscr.dla.mil/aviationinvest/attendance_5Apr01.xls
http://web.nps.navy.mil/~drdolk/is3301/PART_IS3301.XLS

Admin.cfg

Admin.cfg, в большинстве случаев, конфигурационный файл админа. Многие разработчики софта также используют имена типа "config", "admin" или "setup". Часто такие файлы содержат чувствительную информацию и поэтому они не должны быть доступны большинству людей. Я попытался поискать файл admin.cfg, используя следующую строку поиска:

inurl:admin.cfg "index of"

В результате, google выдала множество файлов, среди которых были очень интересные;). Я, например, нашел файл: http://www.alternetwebdesign.com/cgi-bin/directimi/admin.cfg, в котором находились пароли Один пароль был от базы данных, которая находилась по адресу: http://www.alternetwebdesign.com/cgi-bin/directimi/database.cgi?admin.cfg. В базе данных находилась конфиденциальная информация клиентов этой компании. Я решил связаться с этой компанией и рассказать об уязвимости. Люди там оказались дружелюбные и сказали, что в ближайшее время постараются залатать брешь.

Webadmin

Некоторое время назад, когда я работал над этой статьей, я зашел на web сайт:

http://wacker-welt.de/webadmin/

Там было написано, что "webadmin" позволяет удаленно редактировать содержимое web сайта, загружать файлы и т.д. Главная страничка центра управления (control center) webadmin называется "webeditor.php". Очевидно, что следующим моим шагом стало посещение google и использование опции "inurl", чтобы найти страницы webeditor.php. Вот, что я ввел в строке поиска:

inurl:webeditor.php

и вот, что я нашел:

http://orbyonline.com/php/webeditor.php
http://www-user.tu-chemnitz.de/~hkri/Neuer%20Ordner/webeditor.php
http://artematrix.org/webeditor/webeditor.php
http://www.directinfo.hu/kapu/webeditor.php

Ко всем этим файлам доступ был неограничен, а все потому, что владельцы сайтов не потрудились поставить (правильно) защиту, используя.htaccess. Подобная ошибка позволяет абсолютно любому пользователю интернета заменять web страницы на сервере, а, следовательно, и дефейсить сайт. Возможность загружать свои файлы дает возможность получить полный доступ к серверу.

Походив по этим сайтам, я заметил, что файл, позволяющий загружать файлы, называется "file_upload.php". Затем в дело вступает google.

http://www.hvcc.edu/~kantopet/ciss_225/examples/begphp/ch10/file_upload.php

Вот хороший пример:

http://www.pelicandecals.com/admin/webeditor.php

Данный скрипт позволяет вам изменять файлы, как и в предыдущих примерах, включая index.php. По идее, любой заинтересованный человек может изменить существующий или загрузить свой скрипт на сервер и выполнить его. О последствиях, думаю, упоминать не стоит.

http://www.pelicandecals.com/admin/administration.html

Тут была доступна информация о покупателях, возможность менять цены на товары и т.д.

Системы управления содержанием сайта

Системы управления содержанием сайта - это программы, позволяющие web мастерам редактировать, изменять содержимое web сайта. Тоже относится и к панелям управления web сайтов. Суть заключается в том, что вам надо определить, какие файлы являются ключевыми в данном продукте. Таким файлом может быть "cms.html", "panel.html" или "control.cfg".

Frontpage Server Extensions HTML Administration Forms

"Вы можете удаленно администрировать FrontPage Server Extensions с любого компьютера, подключенного к internet, используя FrontPage Server Extension HTML Administration Forms."
Вот, что говорит об этом документация Microsoft. Это значит, пользователи, имеющие доступ к этим формам, могут выполнять некоторые функции администратора, удаленно. А это значит, что формы должны быть хорошо защищены от неавторизованных пользователей. Ну что, как насчет поискать такие формы в интернете? Первое, что нам нужно сделать - выяснить, какие файлы использует этот софт Краткий визит на web сайт Microsoft или беглый взгляд в документацию FrontPage покажет, что главной страницей всех форм администратора является "fpadmin.htm". Именно этот файл мы и будем искать. Но, сначала, мы должно правильно подобрать те опции, которые будут использоваться в строке поиска, чтобы получить нужный нам результат. Если проводится установка по умолчанию, то все файлы помещаются в директорию "admin". Вспомнив все, что мы узнали об опциях google и теории поиска, ожидаемый результат может выдать строка поиска типа:

inurl:fpadmin.htm "index of" admin или inurl:admin/fpadmin.htm

А вот и полученные при поиске результаты:

http://www.lehigh.edu/~ineduc/degree_programs/tbte/admin/
http://blackadder.eng.monash.edu.au/frontpage/admin/
http://www.lehigh.edu/collegeofeducation/degree_programs/tbte/admin/
http://www.vsl.gifu-u.ac.jp/freeman/frontpage4/admin/
http://www.tech-geeks.org/contrib/loveless/e-smith-fp-2002/frontpage/version5.0/admin/1033/fpadmin.htm
http://fp.nsk.fio.ru/admin/1033/fpadmin.htm

Вот что еще написано в документации к FrontPage:

"Из соображений безопасности, HTML Administration Forms сразу после установки не активны, что не позволит удаленно администрировать FrontPage из web браузера."

Это означает только одно - некоторые ссылки, которые выдала нам поисковая система google, могут оказаться бесполезными и есть только один способ проверить их работоспособность - попробовать воспользоваться некоторыми функциями администратора и посмотреть на результат. Я решил не заходить так далеко, чтобы не нарушать закон. Но я здесь не для того, чтобы учить вас хорошим манерам, по крайней мере сегодня.

Freesco Router

Программное обеспечение Freesco router для Linux по умолчанию устанавливает маленький браузер, который позволяет владельцам контролировать работу роутера через http протокол. По умолчанию, логин и пароль для панели управления - "admin". Очень многие пользователи freesco не знают об этом. Вы можете поискать панель управления Freesco роутеров, использую следующую строку:

intitle:"freesco control panel" или "check the connection" эти слова находятся либо в заголовках страниц, либо на самих страницах. Все сводится к одному - вы должны изучить софт найти те его части, которые отвечают за что-то важное (та же страница администратора) и составить такую строку, воспользовавшись которой, вы получите доступ к этим самым частям.

Дополнительные советы

    • Запомните, Английский, самый распространенный в интренете язык, но он не единственный. Пробуйте искать слова или строки из вашего родного языка или Французского или Немецкого и т.д. Например, "beeheer" по-немецки означает "администрация".
    • Вы можете использовать строки из списка уязвимостей любого сканера безопасности (security scanner). За примерами можно обратиться сюда: http://paris2k.at.box.sk/listings/
    • Пробуйте искать файлы "config.inc.php" или "mysql.cfg" - они могут содержать комбинации логин-пароль от базы данных MySQL Попробуйте в строке поиска использовать слова PHP SQL, mySQL и т.д.
    • Попробуйте следующие комбинации: inurl:admin "index of" "database" или inurl:phpmyadmin "index of" или inurl:mysql "index of" site:neworder.box.sk intitle:index.of или intitle:index.of.private(= intitle:"index of private")

Заключение

Internet - это сеть, к которой подключены сотни тысяч, а то и миллионов web серверов и по идее, можно получить доступ к любым данным, конечно, если они не защищены подобающим образом. Как разработчики программного обеспечения, так и конечные пользователи должны уделять больше внимания конфигурации защиты, устанавливаемой по умолчанию и политике безопасности. В конце концов, всегда найдутся люди, которые допускают ошибки, устанавливают все по умолчанию, используют плохо защищенное программное обеспечение и совсем об этом не беспокоятся или все еще верят, что ничего не произойдет если они поместят все это в таком виде в интернет. Но все же находятся любопытные личности, которым нравится находить интересную информацию не для посторонних глаз. Google может вам значительно помочь в таких делах, к тому же это совсем не трудно.


2.
3.
4.
5. Ожидания
6.
7. WebDriver API
8. Приложение: Часто Задаваемые Вопросы

5. Ожидания

В наши дни большинство веб-приложений используют AJAX технологии. Когда страница загружена в браузере, элементы на этой странице могут подгружаться с различными временными интервалами. Это затрудняет поиск элементов, если элемент не присутствует в DOM , возникает исключение ElementNotVisibleException. Используя ожидания, мы можем решить эту проблему. Ожидание дает некий временной интервал между произведенными действиями - поиске элемента или любой другой операции с элементом.

Selenium WebDriver предоставляет два типа ожиданий - неявное (implicit) и явное (explicit). Явное ожидание заставляет WebDriver ожидать возникновение определенного условия до произведения действий. Неявное ожидание заставляет WebDriver опрашивать DOM определенное количество времени, когда пытается найти элемент.

5.1 Явные ожидания

Явное ожидание - это код, которым вы определяете какое необходимое условие должно произойти для того, чтобы дальнейший код исполнился. Худший пример такого кода - это использование команды time.sleep(), которая устанавливает точное время ожидания. Существуют более удобные методы, которые помогут написать вам код, ожидающий ровно столько, сколько необходимо. WebDriverWait в комбинации с ExpectedCondition является одним из таких способов.

From selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Firefox() driver.get("http://somedomain/url_that_delays_loading") try: element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement"))) finally: driver.quit()
Этот код будет ждать 10 секунд до того, как отдаст исключение TimeoutException или если найдет элемент за эти 10 секунд, то вернет его. WebDriverWait по умолчанию вызывает ExpectedCondition каждые 500 миллисекунд до тех пор, пока не получит успешный return. Успешный return для ExpectedCondition имеет тип Boolean и возвращает значение true, либо возвращает not null для всех других ExpectedCondition типов.

Ожидаемые условия
Существуют некие условия, которые часто встречаются при автоматизации веб-сайтов. Ниже перечислены реализации каждого. Связки в Selenium Python предоставляют некоторые удобные методы, так что вам не придется писать класс expected_condition самостоятельно или же создавать собственный пакет утилит.

  • title_is
  • title_contains
  • presence_of_element_located
  • visibility_of_element_located
  • visibility_of
  • presence_of_all_elements_located
  • text_to_be_present_in_element
  • text_to_be_present_in_element_value
  • frame_to_be_available_and_switch_to_it
  • invisibility_of_element_located
  • element_to_be_clickable - it is Displayed and Enabled.
  • staleness_of
  • element_to_be_selected
  • element_located_to_be_selected
  • element_selection_state_to_be
  • element_located_selection_state_to_be
  • alert_is_present
from selenium.webdriver.support import expected_conditions as EC wait = WebDriverWait(driver, 10) element = wait.until(EC.element_to_be_clickable((By.ID,"someid")))
Модуль expected_conditions уже содержит набор предопределенных условий для работы с WebDriverWait.

5.2 Неявные ожидания

Неявное ожидание указывает WebDriver"у опрашивать DOM определенное количество времени, когда пытается найти элемент или элементы, которые недоступны в тот момент. Значение по умолчанию равно 0. После установки, неявное ожидание устанавливается для жизни экземпляра WebDriver объекта.

From selenium import webdriver driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")
Перейти к следующей главе.

Социальная сеть Facebook становится все популярнее, соответственно увеличивается количество ее пользователей и среднее количество фейсбук-друзей у этих пользователей. Порой мы добавляем в друзья на Facebook малознакомых или совсем незнакомых людей, которых мы даже никогда не видели в реальной жизни.
И я уверен, что в связи с этим, у многих людей время от времени возникает необходимость публикации постов в фейсбук «не для всех». То есть когда Вы хотите, чтобы Вашу публикацию на фейсбук увидели только определенные люди из круга Ваших друзей, но не все. Или же наоборот, хотите скрыть публикацию от определенных людей на Facebook. Я бы даже сказал, что такая потребность есть у всех, но больинство просто не осознают ее, совсем не заботясь о приватности своих данных. И к сожалению, не все знают, что в Facebook есть тонкие настройки отображения публикации, которые помогают сохранять конфиденциальность в сети избежать проблем, вызванных теми или иными публикациями.
Когда Вы размещаете пост на Facebook , внизу под формой ввода Вы видите возможность настроики отображение поста, благодаря которой можете выбирать, кто может видеть вашу публикацию. По умолчанию, там доступны два варианта – «Доступно всем»(т.е. Ваша публикация будет доступна во всем Интернете), и «Друзья»(т. е. Вашу публикацию увидят только Ваши друзья на фейсбук).

Однако иногда этих настроек может быть недостаточно, поэтому Вы можете выбрать опцию «Дополнительные настройки».

В дополнительных настройках Вы можете выбрать следующие варианты отображения Вашего фейсбук-поста:


Также настройки позволяют расшарить Ваш пост только для Ваших коллег или для людей из Вашего региона, или же для своего собственного списка друзей.

Если же всех этих специально созданных разработчиками фейсбук опций Вам недостаточно, Вы можете создать свои настройки. Это очень удобно для частных случаев – например, Вы хотите расшарить фоточки с прошедшего корпоратива для своих коллег, но так, чтобы этого не увидел босс.
Для создания своего собственного правила отображения поста выберите в настройках публикации поста пункт «Настройки пользователя».

У Вас отобразится окно, в котором Вы можете выбрать как отдельных людей, для которых хотите публиковать пост (просто начните вводить имя человека и он появится в выпадающем списке), так и наоборот, людей для которых Ваш пост будет недоступен.