Python3.4에서 스크립트를 작성하여 셀렌을 사용하여 웹 페이지를 탐색하고 로그인하십시오. 스크립트는 완벽하게 작동합니다. 셀레늄 스크립트 :py2exe를 사용하여 exe에 python 셀렌 스크립트를 작성하십시오.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://128.114.70.78/periscope")
login = driver.find_element_by_id('keys')
login.send_keys("username")
login.send_keys(Keys.TAB)
login.send_keys("pass")
login.send_keys(Keys.RETURN)
내가 py2exe에를 사용하여 EXE로를 내장, 그러나 실행은 셀레늄 webdriver 모든 시간을 가져 실패합니다. AttributeError가 발생했습니다 : 'NoneType'객체에는 'startswith'속성이 없습니다.
Traceback (most recent call last):
File "periscopeLogin.py", line 1, in <module>
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1161, in
_load_backward_compatible
File "C:\Python34\lib\site-packages\selenium\webdriver\__init__.py", line
18, in <module>
from .firefox.webdriver import WebDriver as Firefox # noqa
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1161, in
_load_backward_compatible
File "C:\Python34\lib\site-
packages\selenium\webdriver\firefox\webdriver.py", line 34, in <module>
from selenium.webdriver.remote.webdriver import WebDriver as
RemoteWebDriver
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1161, in
_load_backward_compatible
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py",
line 25, in <module>
from .webelement import WebElement
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1161, in
_load_backward_compatible
File "C:\Python34\lib\site-
packages\selenium\webdriver\remote\webelement.py", line 40, in <module>
getAttribute_js = pkgutil.get_data(__package__,
'getAttribute.js').decode('utf8')
File "C:\Python34\lib\pkgutil.py", line 611, in get_data
spec = importlib.util.find_spec(package)
File "C:\Python34\lib\importlib\util.py", line 81, in find_spec
fullname = resolve_name(name, package) if name.startswith('.') else name
AttributeError: 'NoneType' object has no attribute 'startswith'
I 2014에서 스레드를 발견 setup.py 파일에 셀레늄 webdriver의 위치를 지정 말한다 : 여기에 로그 파일에 오류가 있습니다. 링크 : Make exe file from python selenium tests 그러나 여전히 스레드의 솔루션을 시도 할 때 같은 오류가 나타납니다.
from distutils.core import setup
import py2exe
data_files = [('selenium\webdriver\Firefox', ['C:\Python34\Lib\site-
packages\selenium\webdriver\Firefox\webdriver.xpi'])]
# from selenium import webdriver
# from selenium.webdriver.common.keys import Keys
setup(
windows = [{'script': "periscopeLogin.py"}], # the main py file
data_files = data_files,
options = {
'py2exe':
{
'skip_archive': True,
'optimize': 2,
}
}
)
유일한 차이점은 내가 Python34를 사용하고, 그리고 3 년 된 스레드가 Python27를 사용한다는 것입니다 : 여기 내 setup.py입니다. 그 기간 동안 상황이 바뀌었을 것 같은 기분입니다. 누구든지 따라야 할 아이디어 나 리드가 있습니까? 27 점을 줄까요?
감사합니다.
안녕하세요, 이것에 대한 해결책이 있습니까? 그렇다면 게시물을 업데이트하십시오. – pratibha
알림을 제공해 주셔서 감사합니다. 나는 지금 그것을 할 것이다. –