Перейти к содержимому

Фотография

Selenium и Flash Player


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 lucidlynx

lucidlynx

    Новый участник

  • Members
  • Pip
  • 14 сообщений
  • ФИО:Andrey Kuzmin

Отправлено 11 апреля 2018 - 05:42

Коллеги, добрый день!

Есть вопрос, есть приложение которое необходимо мониторить. Написал скрипт на python с иcпользованием selenium. На моей локальной машине все запускается нормально (запускал для отладки в pycharm, тест проходит.

При запуске на сервере без Х не работает. Валится при логине в систему (сделал скрин в момент возникновения ошибки).

Вот часть скрипта

# -*- coding: utf-8 -*-

from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()

from selenium import webdriver
from selenium.webdriver import FirefoxProfile
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.webdriver import WebDriver
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import unittest, time, re, logging, os
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

cap = DesiredCapabilities.FIREFOX
cap["unexpectedAlertBehaviour"] = "accept"

profile = webdriver.FirefoxProfile()
profile.set_preference("plugin.state.flash", 2)
profile.set_preference("dom.ipc.plugins.enabled.libflashplayer.so","true")

##LOGIN SITE

driver = webdriver.Firefox(profile)
log_callisto = open("log.log", "w")

driver.get("http://10.168.204.72:8080/")
try:
    elemLogin = WebDriverWait (driver, 10).until(
        EC.presence_of_element_located((By.ID, "login"))
    )
    elemLogin.send_keys("guest")
    driver.find_element_by_id("password").send_keys("Qwerty123")
    driver.find_element_by_id("submitter").click()

except TimeoutException:
    log_callisto.write("ERROR: Not login")
    driver.quit()
#    print("ERROR: Not login", log_log.tell())


time.sleep(5)
driver.switch_to.frame('menu')

Прошу посоветовать как правильно включить flash player.

Используются:

Mozilla Firefox 59.0
selenium (3.11.0)

gecokdriver 0.20

Прикрепленные файлы

  • Прикрепленный файл  pr.png   24,03К   0 Количество загрузок:

  • 0

#2 lucidlynx

lucidlynx

    Новый участник

  • Members
  • Pip
  • 14 сообщений
  • ФИО:Andrey Kuzmin

Отправлено 11 апреля 2018 - 06:22

Коллеги, добрый день!

Есть вопрос, есть приложение которое необходимо мониторить. Написал скрипт на python с иcпользованием selenium. На моей локальной машине все запускается нормально (запускал для отладки в pycharm, тест проходит.

При запуске на сервере без Х не работает. Валится при логине в систему (сделал скрин в момент возникновения ошибки).

Вот часть скрипта

# -*- coding: utf-8 -*-

from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()

from selenium import webdriver
from selenium.webdriver import FirefoxProfile
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.webdriver import WebDriver
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import unittest, time, re, logging, os
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

cap = DesiredCapabilities.FIREFOX
cap["unexpectedAlertBehaviour"] = "accept"

profile = webdriver.FirefoxProfile()
profile.set_preference("plugin.state.flash", 2)
profile.set_preference("dom.ipc.plugins.enabled.libflashplayer.so","true")

##LOGIN SITE

driver = webdriver.Firefox(profile)
log_callisto = open("log.log", "w")

driver.get("http://10.168.204.72:8080/")
try:
    elemLogin = WebDriverWait (driver, 10).until(
        EC.presence_of_element_located((By.ID, "login"))
    )
    elemLogin.send_keys("guest")
    driver.find_element_by_id("password").send_keys("Qwerty123")
    driver.find_element_by_id("submitter").click()

except TimeoutException:
    log_callisto.write("ERROR: Not login")
    driver.quit()
#    print("ERROR: Not login", log_log.tell())


time.sleep(5)
driver.switch_to.frame('menu')

Прошу посоветовать как правильно включить flash player.

Используются:

Mozilla Firefox 59.0
selenium (3.11.0)

gecokdriver 0.20


  • 0

#3 lucidlynx

lucidlynx

    Новый участник

  • Members
  • Pip
  • 14 сообщений
  • ФИО:Andrey Kuzmin

Отправлено 11 апреля 2018 - 08:34

Пробовал chrome:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
prefs = {"profile.default_content_setting_values.plugins": 1,
"profile.content_settings.plugin_whitelist.adobe-flash-player": 1,
"profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player": 1,
"PluginsAllowedForUrls": "http://10.168.204.72:8080/"}
chrome_options.add_experimental_option("prefs", prefs)


##LOGIN SITE

driver = webdriver.Chrome(chrome_options=chrome_options)

все тоже самое.

Не могу залогиниться


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных