Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “机器人框架”;选择文件";原因属性错误:模块';base64';没有属性';编码字符串';码头工人_Python_Docker_Upload_Base64_Robotframework - Fatal编程技术网

Python “机器人框架”;选择文件";原因属性错误:模块';base64';没有属性';编码字符串';码头工人

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

我正在尝试在docker容器中运行测试,该容器在本地运行,没有任何问题: 我想从“正确”目录上载正确的.csv文件

*** 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,因此应能起到相同的作用。应该没有 打破变化

  • 因此,您可以将selenium升级到selenium 4.0.0.a5或更高版本
  • 例如,将Python降级到3.7。我想您在本地不运行3.9

  • 是的,谢谢!你完全正确。我在本地运行Python3.8,我已经在docker中更改了版本。我使用的seleniumlibrary版本是seleniumlibrary==5.0.0b1,因为在从py27迁移到py3时,我很难导入任何其他版本