Python3.4でスクリプトを作成し、seleniumを使用してWebページに移動してログインしました。スクリプトは完璧に機能します。 セレンスクリプト:py2exeを使用してexeファイルにpython seleniumスクリプトを作成します。
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'
私は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
リマインダーありがとうございます!私は今それをやるでしょう。 –