SyntaxError: неверный синтаксис с python2 и селеном в centos6.8 - PullRequest
1 голос
/ 05 мая 2020

Я запускаю python скрипт:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.keys import Keys
# from pyvirtualdisplay import Display

profile = Options()
profile.headless = True
profile.add_argument('-width=800')
profile.add_argument('-height=600')

# display = Display(visible=0, size=(800, 600))
# display.start()

driver = webdriver.Firefox(options=profile, executable_path='./geckodriver')

driver.get('http://192.168.1.3')
elem = driver.find_element_by_id('sitename').text
print(elem)
driver.quit()

Я пытаюсь запустить скрипт с pyvirtualdisplay, но ошибка все еще здесь.

Traceback (most recent call last):
  File "script.py", line 4, in <module>
    from selenium import webdriver
  File "/opt/pyscript/venv/env_selenium/lib/python2.6/site-packages/selenium/webdriver/__init__.py", line 18, in <module>
    from .firefox.webdriver import WebDriver as Firefox  # noqa
  File "/opt/pyscript/venv/env_selenium/lib/python2.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 29, in <module>
    from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
  File "/opt/pyscript/venv/env_selenium/lib/python2.6/site-packages/selenium/webdriver/remote/webdriver.py", line 1115
    return {k: size[k] for k in ('width', 'height')}
                         ^
SyntaxError: invalid syntax

Я также устанавливаю fontconfig freetype freetype-devel fontconfig -devel libstdc ++ в CentOS. И я пробую запускать с фантомом браузера js, эта проблема все еще существует. Версия: CentOS 6.8, python 2.6.6, селен PyVirtualDisplay 0.2.5, селен 3.141.0 Как решить эту проблему?

1 Ответ

1 голос
/ 05 мая 2020

Существует несовместимость между Selenium и Python2 .6 в понимании словаря, что и является этой строкой.

return {k: size[k] for k in ('width', 'height')}

О проблеме сообщалось некоторое время go и закрыто здесь . Кроме того, срок службы Python 2 подошел к концу, поэтому без поддержки по устранению проблем, подобных той, с которой вы столкнулись, это должно быть серьезным стимулом для обновления до Python 3.x.

Не идеальная альтернатива - понизить версию селена.

...