Форум программистов, компьютерный форум CyberForum.ru

Python: Web

Войти
Регистрация
Восстановить пароль
 
weblord
1 / 1 / 0
Регистрация: 16.10.2016
Сообщений: 110
#1

Не могу найти нужную форму (Selenium). Часть 2 - Python

04.01.2017, 20:09. Просмотров 118. Ответов 0
Метки нет (Все метки)

Приветствую всех, кто не понял заголовок - первая тема по ссылке. В общем, проверил я через лису, что все работает и успокоился. Через некоторое время стало неудобно работать, и пришлось использовать PhantomJS. И тут все рухнуло Идентичный код успешно отрабатывал в файрфоксе, однако в фантомжс - нет. Код примерно такой:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
 
class actions():
    def send_message():
        driver.implicitly_wait(30)
        driver.switch_to.frame(driver.find_element_by_xpath('//iframe[@aria-describedby="cke_63"]')) #переключаемся в форму (а именно - фрейм), и вот тут уже начинаются проблемы - фантом ее вроде как находит, и ошибок не выдает
        a = driver.find_element_by_tag_name('body') #находим во фрейме элемент, который принимает ввод
        a.send_keys('Забавно :)') #отсылаем текст, по итогу он НЕ ОТСЫЛАЕТСЯ, это я могу увидеть по сделанному скрину, ХОТЯ почему-то ошибок никаких не выдает. Деталь: пробовал сначала кликнуть на этот элемент ввода, и вот тут уже выдавало ошибку, мол "Element is not visible". Опять же, в файрфоксе никаких подобных проблем не было, текст отсылался успешно.
        driver.get_screenshot_as_file('C:\\screens-zismo\\WORK-FIREFOX!!!.png') #делаем скрин, чтобы увидеть, вводится ли текст
        driver.switch_to.default_content() #выходим из фрейма
        driver.find_element_by_id('submit_post').click() #кликаем на кнопку отправки сообщения
 
driver = webdriver.PhantomJS(executable_path=r'C:\phantomjs-2.1.1-windows\bin\phantomjs.exe')
driver.implicitly_wait(30)
 
#------НАЧАЛО АВТОРИЗАЦИИ-------
driver.get('http://zismo.biz/')
login_auth = driver.find_element_by_name('ips_username')
pass_auth = driver.find_element_by_name('ips_password')
login_auth.send_keys('мой логин')
pass_auth.send_keys('мой пароль')
driver.find_element_by_class_name('loginbtm').click() #кликаем на кнопку подтверждения авторизации
#------КОНЕЦ АВТОРИЗАЦИИ---------
 
driver.get('http://zismo.biz/topic/792301-kuda-vlozhit-malenkuiu-summu/') #берем любую тему форума
driver.find_element_by_xpath('/html/body/div[1]/div[4]/div[5]/div[1]/div[1]/ul/li[1]/a/strong').click() #жмем на кнопку "Напишите свое сообщение"
actions.send_message() #вызываем функцию, отвечающую за отправку сообщения
driver.quit()
Постарался все описать максимально понятно.. Очень прошу помочь.

Добавлено через 1 минуту
Можете зарегистрироваться через временную почту, чтобы было удобно проверить все самому.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2017, 20:09     Не могу найти нужную форму (Selenium). Часть 2
Посмотрите здесь:

Изменить размер окна в Selenium Python
Python Selenium + PhantomJS + прокси
Python Selenium, выделение текста на странице
Selenium не запускает браузер Python
Python Не работает selenium
Python Selenium не находит элемент
Прокси в Selenium (PhantomJS) Python
Python Не могу найти нужную форму (Selenium)
Selenium не делает скриншот Python
Python Selenium
Python Selenium PhantomJS. Прокси с авторизацией
Python Threading и selenium

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 09:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru