SyntaxError: invalid syntax with python2 and selenium in centos6.8
SyntaxError: invalid syntax with python2 and selenium in centos6.8
我运行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
我还在 CentOS 中安装了 fontconfig freetype freetype-devel fontconfig-devel libstdc++。我用浏览器 phantomjs 尝试 运行,这个问题仍然存在。
版本:CentOS 6.8,python 2.6.6,硒 PyVirtualDisplay 0.2.5,硒 3.141.0
我该如何解决这个问题?
Selenium 和 Python2.6 在字典理解方面存在不兼容性,这就是这一行的内容。
return {k: size[k] for k in ('width', 'height')}
该问题已在一段时间前报告并已关闭 here。此外,Python 2 已达到生命周期的终点,因此如果不支持解决您所面临的问题,这应该是升级到 Python 3.x 的强烈动力。
不理想的替代方案 - 降级硒。
我运行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
我还在 CentOS 中安装了 fontconfig freetype freetype-devel fontconfig-devel libstdc++。我用浏览器 phantomjs 尝试 运行,这个问题仍然存在。 版本:CentOS 6.8,python 2.6.6,硒 PyVirtualDisplay 0.2.5,硒 3.141.0 我该如何解决这个问题?
Selenium 和 Python2.6 在字典理解方面存在不兼容性,这就是这一行的内容。
return {k: size[k] for k in ('width', 'height')}
该问题已在一段时间前报告并已关闭 here。此外,Python 2 已达到生命周期的终点,因此如果不支持解决您所面临的问题,这应该是升级到 Python 3.x 的强烈动力。
不理想的替代方案 - 降级硒。