Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
3 / 3 / 2
Регистрация: 24.11.2014
Сообщений: 27
1

Запуск рандомным образом Webdriver Selenium в Pyton

29.10.2015, 13:51. Показов 1604. Ответов 18
Метки нет (Все метки)

Нужно по псевдослучайному закону запустить webdriver. Вот такая конструкция не проходит:
Python
1
2
3
4
5
6
7
import random
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
 
browser_types = ['Firefox', 'Chrome', 'Ie', 'Safari', 'Edge']
i = random.randint(0, 4)
browser = webdriver.browser_types[i]()
Есть у кого-нибудь мысли по этому поводу? Заранее признателен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2015, 13:51
Ответы с готовыми решениями:

Selenium webdriver подключиться ?
Такой код: from selenium import webdriver Chrome_Browser = webdriver.Chrome() Chrome_Browser...

Парсинг Beautiful Soup 4 и Selenium.Webdriver
Здравствуйте, пишу парсер под сайт https://www.kimovil.com/ru/ и возникает проблема: товары...

Selenium webdriver как узнать имя фрейма
Нужная мне страница после нажатия кнопки AJAX-ом подгружает данные. Если в Хроме на эти данные...

Selenium Webdriver
Здравствуйте, как можно при помощи Selenium webdriver можно заполнить поле по ссылке...

18
Модератор
Эксперт NIX
2783 / 2031 / 680
Регистрация: 02.03.2015
Сообщений: 6,513
29.10.2015, 14:04 2
Так а где Вы используете Keys?
0
Эксперт С++
8359 / 6097 / 610
Регистрация: 10.12.2010
Сообщений: 28,419
Записей в блоге: 30
29.10.2015, 14:38 3
Цитата Сообщение от igornec2006 Посмотреть сообщение
Вот такая конструкция не проходит:
Не проходит или не подходит?
0
3 / 3 / 2
Регистрация: 24.11.2014
Сообщений: 27
29.10.2015, 15:58  [ТС] 4
это уже дальше, в теле программы:
Python
1
2
element = browser.find_element_by_name('q')
element.send_keys(search_string + ' wiki' + Keys.RETURN)
Добавлено через 1 минуту
Выдает ошибку:
Traceback (most recent call last):
File "D:/work/Selenium/Authority/main.py", line 22, in <module>
browser = webdriver.browser_types[i]()
AttributeError: 'module' object has no attribute 'browser_types'
0
Модератор
Эксперт NIX
2783 / 2031 / 680
Регистрация: 02.03.2015
Сообщений: 6,513
29.10.2015, 19:45 5
А слабо посмотреть
Python
1
help(webdriver)
1
3 / 3 / 2
Регистрация: 24.11.2014
Сообщений: 27
29.10.2015, 22:36  [ТС] 6
Нет, не слабо, но на что смотреть, кроме перечисления пакетов?
0
Эксперт С++
8359 / 6097 / 610
Регистрация: 10.12.2010
Сообщений: 28,419
Записей в блоге: 30
29.10.2015, 22:43 7
Смотреть есть атрибут 'browser_types' есть ведь dir()
0
3 / 3 / 2
Регистрация: 24.11.2014
Сообщений: 27
29.10.2015, 22:48  [ТС] 8
Такого атрибута там нет. Я задавал вопрос - как можно организовать выбор вебдрайвера по рандому из списка доступных?
0
Эксперт С++
8359 / 6097 / 610
Регистрация: 10.12.2010
Сообщений: 28,419
Записей в блоге: 30
29.10.2015, 22:50 9
Как задал, так тебе и ответили.
0
3 / 3 / 2
Регистрация: 24.11.2014
Сообщений: 27
29.10.2015, 22:55  [ТС] 10
Ну и за это спасибо...
0
Эксперт С++
8359 / 6097 / 610
Регистрация: 10.12.2010
Сообщений: 28,419
Записей в блоге: 30
30.10.2015, 00:11 11
igornec2006,

Вероятно ты имеешь ввиду:

Python
1
2
3
4
browsers = [webdriver.Ie, webdriver.Firefox, webdriver.Chrome]
i = random.randint(0, len(browsers)-1)
browser = browsers[i]()
browser.get("http://www.yahoo.com")
Только у меня работает только Fox, как ты добился работы других драйверов?
1
3 / 3 / 2
Регистрация: 24.11.2014
Сообщений: 27
30.10.2015, 08:58  [ТС] 12
Avazart, спасибо!
Другие драйверы необходимо скачивать устанавливать отдельно:
http://docs.seleniumhq.org/download/
Насчет Сафари не пробовал еще, но там, чувствую, еще те пляски с бубном предстоят
0
Эксперт С++
8359 / 6097 / 610
Регистрация: 10.12.2010
Сообщений: 28,419
Записей в блоге: 30
30.10.2015, 11:04 13
igornec2006, Я то скачал, а что делать с экзешниками драйверов (под IE и Chrome)? Как бы и в PATH прописывал путь к нем, все равно говорит мол "не вижу"
0
2723 / 2326 / 620
Регистрация: 19.03.2012
Сообщений: 8,832
30.10.2015, 12:29 14
Цитата Сообщение от igornec2006 Посмотреть сообщение
Нужно по псевдослучайному закону запустить webdriver.
Все тривиально как бы
Python
1
2
3
4
5
6
7
from random import choice
from selenium import webdriver
 
browsers = ('Firefox', 'Chrome', 'Opera')
 
driver = getattr(webdriver, choice(browsers))()
driver.set_window_size(657, 550)
1
3 / 3 / 2
Регистрация: 24.11.2014
Сообщений: 27
30.10.2015, 12:58  [ТС] 15
Странно, у меня все прошло нормально, делал по инструкции... Посмотри еще здесь:
https://github.com/SeleniumHQ/... romeDriver

Добавлено через 26 секунд
alex925, спасибо!
0
Avazart
30.10.2015, 14:15
  #16

Не по теме:

Хм работает, походу изменения в PATH сработали только после перезагрузки системы.

0
2723 / 2326 / 620
Регистрация: 19.03.2012
Сообщений: 8,832
30.10.2015, 15:50 17
Avazart, можно было и просто завершить сеанс работы и заново залоганиться.
0
3 / 3 / 2
Регистрация: 24.11.2014
Сообщений: 27
30.10.2015, 17:08  [ТС] 18
alex925, я просто перезапустил PyCharm
0
Эксперт С++
8359 / 6097 / 610
Регистрация: 10.12.2010
Сообщений: 28,419
Записей в блоге: 30
03.11.2015, 21:27 19
Блин с Iе драйвером чет непонятное

Traceback (most recent call last):
File "C:/Users/fujitsu/PycharmProjects/test_selenium/test_selenium.py", line 28, in <module>
browser= webdriver.Ie()
File "C:\Python34\lib\site-packages\selenium\webdriver\ie\webdriver.py", line 55, in __init__
desired_capabilities=capabilities)
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 87, in __init__
self.start_session(desired_capabilities, browser_profile)
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 141, in start_session
'desiredCapabilities': desired_capabilities,
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 201, in execute
self.error_handler.check_response(response)
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 181, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones.
Драйвер качал от сюда http://selenium-release.storag... path=2.39/ может кто подскажет что-то?

Решение :
Нужно зайти в IE в меню Сервис/Свойства браузера/Безопасность выставить галочку для "Включить защищенный режим" для всех четырех зон ("Интернет,Местная интросесть,Надежные сайты,Опасные сайты").
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2015, 21:27

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Работа Selenium WebDriver C++
Есть ли возможность работать с Selenium WebDriver в C++? Если да, то как установить данное чудо ни...

Selenium WebDriver и активный браузер
Можно ли как-нибудь с помощью Selenium WebDriver узнать url активной вкладки? Браузер до запуска...

Selenium WebDriver клик по координатам
подскажите можно ли в селениуме сделать клик по координатам

Обработка исключения в Selenium Webdriver
Работаю с Selenium Webdriver и не могу понять как в нижеидущем коде работает исключение Помогите,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.