Python “机器人框架”;选择文件";原因属性错误:模块';base64';没有属性';编码字符串';码头工人
我正在尝试在docker容器中运行测试,该容器在本地运行,没有任何问题: 我想从“正确”目录上载正确的.csv文件Python “机器人框架”;选择文件";原因属性错误:模块';base64';没有属性';编码字符串';码头工人,python,docker,upload,base64,robotframework,Python,Docker,Upload,Base64,Robotframework,我正在尝试在docker容器中运行测试,该容器在本地运行,没有任何问题: 我想从“正确”目录上载正确的.csv文件 *** Keyword *** Upload file [Arguments] ${directory} ${file} Choose File ${choose_file_input} ${EXECDIR}/Files/${directory}/${file} ** Test case *** Upload Upload file
*** Keyword ***
Upload file
[Arguments] ${directory} ${file}
Choose File ${choose_file_input} ${EXECDIR}/Files/${directory}/${file}
** Test case ***
Upload
Upload file correct correct.csv
但当在docker中运行测试时,我发现AttributeError失败:模块“base64”并没有属性“encodestring”。是因为docker中没有GUI吗?还是需要修改编码?或者最终可能会有另一个解决方案,我可以用来上传文件
15:20:01.250 INFO Sending /App/Files/correct/correct.csv to browser.
15:20:01.251 DEBUG POST http://192.168.1.29:4444/wd/hub/session/4b6d453b394adaaa51bb4149e9ba8678/elements {"using": "xpath", "value": "//div[@id=\"upload\"]//input"}
15:20:01.252 DEBUG Starting new HTTP connection (1): 192.168.1.29:4444
15:20:01.305 DEBUG http://192.168.1.29:4444 "POST /wd/hub/session/4b6d453b394adaaa51bb4149e9ba8678/elements HTTP/1.1" 200 90
15:20:01.305 DEBUG Finished Request
15:20:01.618 FAIL AttributeError: module 'base64' has no attribute 'encodestring'
15:20:01.619 DEBUG Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/SeleniumLibrary/__init__.py", line 490, in run_keyword
return DynamicCore.run_keyword(self, name, args, kwargs)
File "/usr/local/lib/python3.9/site-packages/robotlibcore.py", line 103, in run_keyword
return self.keywords[name](*args, **(kwargs or {}))
File "/usr/local/lib/python3.9/site-packages/SeleniumLibrary/keywords/formelement.py", line 224, in choose_file
self.find_element(locator).send_keys(file_path)
File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/remote/webelement.py", line 475, in send_keys
value = self._upload(local_file)
File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/remote/webelement.py", line 695, in _upload
content = base64.encodestring(fp.getvalue())
根据回溯,您发现了以下问题: 这是问题的修复程序:。 他们不会支持此修复程序: 谢谢你的问题。我们不会发布另一个版本3,因为我们 即将结束硒4。这是一个下降的替代品 使用Selenium 4.0.0.a5,因此应能起到相同的作用。应该没有 打破变化
是的,谢谢!你完全正确。我在本地运行Python3.8,我已经在docker中更改了版本。我使用的seleniumlibrary版本是seleniumlibrary==5.0.0b1,因为在从py27迁移到py3时,我很难导入任何其他版本